home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir39 / 4dostip6.zip / 4DOSTIP6.MSG next >
Text File  |  1993-01-04  |  323KB  |  9,030 lines

  1.  
  2. ------------------------------------------------------------------------
  3.  
  4. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5.  
  6.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  7.   To: TONY DUNLAP                     Num: 104        Date: 10/23/1992
  8. From: DAYTON LIVINGSTON                Re:            Time: 10:23 am
  9. Subj: 4Dos V4.01 & 4.01B             Prvt: N          Read: N
  10.  
  11. DM> So am I, in part.  I use both, with the 4DOS internal LIST
  12. DM> aliased to SHOW.  For big files and complex tasks, Buerg's
  13. DM> utility can't be equaled.  For small files and speed, the 4DOS
  14. DM> internal gets the nod, since invoking it is quicker than calling
  15. DM> LIST as an external.  I just wish 4DOS didn't call it's internal
  16. DM> browser LIST. The name conflict is simple enough to work around,
  17. DM> but it would be simpler still if we didn't have to.
  18.  
  19. TD> I use both as well, except I didn't use a second alias,
  20. TD> when I want 4dos' list I just type *list.
  21.  
  22. TD> Maybe we could make an alias, that, if a file was over a
  23. TD> certain size, use Buerg's list else use 4dos' list.
  24.  
  25. Hmmm... Doesn't sound too difficult:
  26.  
  27.     ALIAS LOOK=`IFF %@FILESIZE[%1,K] LT 100 THEN^*LIST %1^...
  28.     ...ELSE^C:\UTILS\list.com %1^ENDIFF`
  29.  
  30. (All on one line where the dots are, of course, and of course, if
  31. it's in your ALIAS file, you don't need the back-quotes.  And of
  32. course, you can substitute whatever size you like.)
  33.  
  34. This will, of course, error out on *LIST and call LIST.COM if no
  35. parameters are given (you'll get an "unknown command "endiff"
  36. error on exiting LIST.COM as well, but so what?)  Works fine
  37. here!  And of course, it could be made bigger and avoid the
  38. errors as well.  The only potential problem I found is that it
  39. won't neccessarily work as expected if two or more files are
  40. entered as arguments (hence %1 vice %&) since *LIST supports
  41. multiple arguments while LIST.COM doesn't.
  42.  
  43. - Dayton
  44.  
  45.  * OLX 994 * To Serve And Protect - TRADITIONAL MOTTO OF RACKETEERS
  46.  
  47. --- Maximus 2.00
  48.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  49.  
  50. ------------------------------------------------------------------------
  51.  
  52. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  53.  
  54.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  55.   To: DAYTON LIVINGSTON               Num: 118        Date: 10/23/1992
  56. From: WILLIAM HUGHES                   Re:            Time:  1:48 pm
  57. Subj: 4dos v4.01(b)/list.ct          Prvt: N          Read: N
  58.  
  59. DL>Actually, though I use 4DOS's LIST 99% of the time, there are
  60.   >times when LIST.COM is better for my purposes.  Primarily when
  61.   >I've got a few dozen text files that I need to view & delete one
  62.   >by one.
  63.  
  64. Off the top of my head...
  65.  
  66.  
  67. for %a in (*.txt) (
  68.     list %a
  69.     inkey Delete? (y/N) %%KILL
  70.     if %KILL==Y del %a > nul
  71.     set KILL=N
  72.     )
  73.  
  74.  
  75.  * SLMR 2.1a * 
  76.  
  77. --- MsgToss 2.0b (r)
  78.  * Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
  79.  
  80. ------------------------------------------------------------------------
  81.  
  82. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  83.  
  84.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  85.   To: WILLIAM HUGHES                  Num: 100        Date: 10/23/1992
  86. From: PHI NGUYEN                       Re:            Time:  2:23 pm
  87. Subj: Mulpprmp.btm - most obnox      Prvt: N          Read: N
  88.  
  89. PN> *ahem* :-)
  90.  
  91. OK! So it was you! I quoted your message to disk but didn't quote your name!
  92. It is a good idea to include your name into the BTM file!<G>
  93.  
  94. PN> I rewrote the whole thing last week in much the same manner as
  95. PN> you did. I also put the unchanging flags (versions, shell level,
  96. PN> etc.) in 4START, so as to speed up the prompt. It's down to about
  97. PN> a half-second on my 286-16.
  98.  
  99. One thing I noted about your RANDOM.COM is that it returned 1 to n while
  100. %@lines and %@line begin with zero. The way that I wrote, the first line in
  101. the TAGLINE file will never be displayed!
  102.  
  103. Here is the change I think is needed:
  104.  
  105. RANDOM %@eval[%@lines[tagline.txt]+1]
  106. set TAGLINE=%@line[tagline,%@eval[%? - 1]
  107.  
  108. Phi
  109. --- GEcho 1.00/beta
  110.  * Origin: The Transporter Room: 8 lines 4 gig 5 CD's 704/567-9513
  111. (1:379/1.1)
  112.  
  113. ------------------------------------------------------------------------
  114.  
  115. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  116.  
  117.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  118.   To: JACK STEIN                      Num: 125        Date: 10/22/1992
  119. From: HUGO LANDSMAN                    Re:            Time:  2:36 pm
  120. Subj: REXX 4dos                      Prvt: N          Read: N
  121.  
  122. Hi Jack,
  123.  
  124. 16 Oct 1992 16:49, Jack Stein (1:129/171@fidonet) wrote to Dennis Mccunney:
  125.  
  126.  JS> What I was thinking was passing the VAR from a shell to the master 
  127.  JS> enviroment.  I reckon that's not feasable, and UNIX I think uses the 
  128.  
  129. Ah, that's easy: just use the /M option on SET.
  130.  
  131.  JS> EXPORT function to do what DOS does by default.
  132.  
  133. And that's the hard part: you have to teach the subshells to somehow reread
  134. the master environment when it's been changed.  Something like:
  135.  
  136. alias import=
  137.     iff %@eval[%_shell+%_dv+%_win]=0 then ^ rem should be save now
  138.         set exported=
  139.     else
  140.         set/m exported|input %%doimport
  141.         iff "%exported" ne "%doimport" then ^ rem someone did an export
  142.             set exported=%doimport
  143.             for %a in (%doimport) (set/m %a|input %%%%%a)
  144.         endiff
  145.     endiff
  146. prompt %@exec[import]$p$g
  147. alias export=
  148.     set/m %1=%2&
  149.     set/m exported|input %%exported
  150.     set/m exported=%exported %1
  151.     import
  152.  
  153.  JS> up to is very likely beyond my knowledge.  My experience has been 
  154.  JS> endiff errors were always problems with my construct, and I always 
  155.  JS> assume I'm doing something wrong, and so far, I've been right! :-)
  156.  
  157. Yeah! :-)
  158.  
  159. regards,
  160.          hugo
  161.  
  162. --- FastEcho 1.21/b3
  163.  * Origin: st. anna pbbs, nijmegen nl (2:512/154.5@fidonet.org)
  164.  
  165. ------------------------------------------------------------------------
  166.  
  167. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  168.  
  169.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  170.   To: PAUL CARROLL                    Num: 114        Date: 10/23/1992
  171. From: RAYMOND BERIAU                   Re:            Time: 12:25 pm
  172. Subj: date/archive                   Prvt: N          Read: N
  173.  
  174. Greetings Paul!
  175. Answering/Quoting a message from Paul Carroll to Neal Jackson:
  176.  
  177.  PC> I use DAYNBR to do this...
  178.  
  179. There is an even easier way of doing this (the 4DOS WAY) than calling that
  180. large DAYNBR program:
  181.  
  182.     set tjd=%@eval[%@date[%_date]-%@date[1-1-%@substr[%_date,1,-2]]+1]
  183.  
  184. The "TJD" stands for "Today's Julian Date"...  :)
  185.  
  186. Also, a few weeks back, a .BTM file called DNR was released in here that
  187. would do everything DANYBR does, but using only 4DOS commands.
  188.  
  189.  PC> ...here's part of my BBS batch file to show you how I rename my logs
  190.  PC> and move them into an archive.
  191.  
  192. Thus, that batch file of yours would become:
  193.  
  194.     :compresslog
  195.     pushd d:\log
  196.     set tjd=%@eval[%@date[%_date]-%@date[1-1-%@substr[%_date,1,-2]]+1]
  197.     ren *.log *.%tjd ^ arj a logfile *.%tjd ^ del *.%tjd
  198.     popd ^ goto loop
  199.  
  200. Shorter and faster than before ... more so if you call it {filename}.BTM
  201.  
  202. Raymond.
  203.  
  204. --- GoldED 2.40.P0720
  205.  * Origin:  INFODATA Service d'Informations * Basses Laurentides (1:242/90)
  206.  
  207. ------------------------------------------------------------------------
  208.  
  209. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  210.  
  211.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/26/1992
  212.   To: NEAL JACKSON                    Num: 127        Date: 10/22/1992
  213. From: HENK SIMMELINK                   Re:            Time:  6:36 pm
  214. Subj: date/archive                   Prvt: N          Read: N
  215.  
  216. Hello Neal!
  217.  
  218. Sunday October 18 1992, Neal Jackson wrote to himself:
  219.  
  220.  NJ>> Is there a way to have a 4DOS .BTM file rename a archived backup file
  221.  NJ>> with the current date? The format of the date/filename is not
  222.  NJ>> important.
  223.  NJ> I guess I jumped the gun here. I found the %@substr variable and it
  224. works
  225.  NJ> just fine.
  226.  
  227. If you want a neater (IMHO :-) method, try this:
  228. arj a d:\%@date[%_date]
  229.  
  230. Why should you use this? If you decide to have the old files automatically
  231. deleted just use this:
  232. del d:\%@eval[%@date[%_date]-28].arj
  233.  
  234. This is the way I do reduce the disk space used by FD.log:
  235.         iff exist c:\user\log\fd.log then
  236.                 copy c:\user\log\fd.log c:\user\log\%@date[%_date].log
  237.                 rem>c:\user\log\fd.log
  238.                 arj m -jf1 c:\user\log\fd c:\user\log\%@date[%_date].log
  239.                 arj d c:\user\log\fd %@eval[%@date[%_date]-28].log
  240.         endiff
  241.  
  242.  
  243. Yours sincerely,
  244. Henk `HeSitated' Simmelink
  245.  
  246. P.S. The COPY .... / REM>.... sequence is ment to maintain the right order of
  247.      the files in the log directory...
  248.  
  249. --- GEcho 1.00/beta+
  250.  * Origin:   (2:283/4.6)
  251.  
  252. ------------------------------------------------------------------------
  253.  
  254. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  255.  
  256.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/27/1992
  257.   To: GREGORY P. SMITH                Num: 117        Date: 10/22/1992
  258. From: JASEN BETTS                      Re:            Time:  3:26 am
  259. Subj: Touching file in 4dos??        Prvt: N          Read: N
  260.  
  261.  GP>Well, I've got DR-Dos 6.0, apparently MS was stupid enough not to
  262.  GP>include a touch utility with their dos.  Anyways, I looked at the      
  263.  GP>Borland touch that I've got here.  It'll set a file date and time to   
  264.  GP>the current date and time.  So if you save the current date and time in
  265.  GP>a variable, set it to what you want to make the file, touch it, and    
  266.  GP>restore the time it should work okay...                                
  267.  
  268. The alias for a msdos version of touch is... (get ready to spew)
  269.  
  270. alias touch for x in (%%&) do command /c copy %%x+,,
  271.                        
  272.  
  273. --- Maximus 2.01wb
  274.  * Origin: Mirth Control Chch, NZ 64-3-3890898 v32b/v42b/FAX (3:770/140)
  275.  
  276. ------------------------------------------------------------------------
  277.  
  278. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  279.  
  280.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/28/1992
  281.   To: ALL                             Num: 90         Date: 10/23/1992
  282. From: SAUL LEVY                        Re:            Time:  2:28 pm
  283. Subj: DISKTOT.BTM                    Prvt: N          Read: N
  284.  
  285. All,
  286.  
  287. Here is a little utility based on DISKLEFT.EXE version 2.3 by 
  288. Paul Munoz-Colman (DISKLF23.ZIP, 28K).  DISKLEFT can give the 
  289. total disk, free and used capacities for all of your drives, but 
  290. I prefer the order shown below and to also have percentages.
  291.  
  292. So I wrote the following batch file:
  293.  
  294.  
  295. ============================== CUT HERE ================================
  296. @echo off
  297. rem DISKTOT.BTM by Saul Levy, Tucson, Arizona, 10/22/92, version 1.1
  298. rem Change drive list, %blanks string, and %blanks string output lengths
  299. rem to suit
  300. rem This version handles 999999999, totals of 9999999999 and percentages
  301. rem from 0 to 100 (the latter are rounded up to the next higher % as
  302. rem needed)
  303.  
  304. rem Main routine
  305.  
  306. setlocal
  307. set blanks=`         `
  308.  
  309. echo `Drive     Total         Used     %        Free     %`
  310. echo `=======================================================`
  311. for %a in (C: D: E: F: G: H:) do gosub getnums
  312. echo `=======================================================`
  313.  
  314. set dutp=%@int[%@eval[%dut/%dtt*100+.5]]
  315. set dftp=%@int[%@eval[%dft/%dtt*100+.5]]
  316.  
  317. echos Total %@substr[%blanks,0,%@eval[10-%@len[%dtt]]] %dtt
  318. echos   %@substr[%blanks,0,%@eval[10-%@len[%dut]]] %dut
  319. echos  %@substr[%blanks,0,%@eval[3-%@len[%dutp]]] %dutp
  320. echos   %@substr[%blanks,0,%@eval[10-%@len[%dft]]] %dft
  321. echo  %@substr[%blanks,0,%@eval[3-%@len[%dftp]]] %dftp
  322. endlocal
  323. quit
  324.  
  325.  
  326. rem Subroutine to get data about drives
  327.  
  328. :getnums
  329.  
  330. set dt=%@disktotal[%a]
  331. set du=%@diskused[%a]
  332. set dup=%@int[%@eval[%du/%dt*100+.5]]
  333. set df=%@diskfree[%a]
  334. set dfp=%@int[%@eval[%df/%dt*100+.5]]
  335.  
  336. set dtt=%@eval[%dtt+%dt]
  337. set dut=%@eval[%dut+%du]
  338. set dft=%@eval[%dft+%df]
  339.  
  340. echos   %a   %@substr[%blanks,0,%@eval[9-%@len[%dt]]] %dt
  341. echos    %@substr[%blanks,0,%@eval[9-%@len[%du]]] %du
  342. echos  %@substr[%blanks,0,%@eval[3-%@len[%dup]]] %dup
  343. echos    %@substr[%blanks,0,%@eval[9-%@len[%df]]] %df
  344. echo  %@substr[%blanks,0,%@eval[3-%@len[%dfp]]] %dfp
  345.  
  346. return
  347.  
  348. rem End of DISKTOT.BTM
  349. ============================== CUT HERE ================================
  350.  
  351.  
  352. The environmental variables are shortened to save space:
  353.  
  354.   dt   is the Disk Total capacity for each drive
  355.   du   is the Disk Used capacity for each drive
  356.   dup  is the Disk Used divided by Disk Total percentage
  357.   df   is the Disk Free capacity for each drive
  358.   dfp  is the Disk Free divided by Disk Total percentage
  359.  
  360.   dtt  is the total (sum) of the Disk Total capacities
  361.   dut  is the total (sum) of the Disk Used capacities
  362.   dft  is the total (sum) of the Disk Free capacities
  363.  
  364.   dutp is the total Disk Used divided by total Disk Total percentage
  365.   dftp is the total Disk Free divided by total Disk Total percentage
  366.  
  367.   blanks is a blank string long enough to fill out each column for
  368.     alignment (here 9 spaces)
  369.  
  370.  
  371. Here is a sample output (I installed two new, hard disks and have been 
  372. reorganizing them):
  373.  
  374.  
  375. Drive     Total         Used     %        Free     %
  376. =======================================================
  377.   C:     21344256     19187712   90      2156544   10     [drv. 1, part. 1]
  378.   D:     21344256     15331328   72      6012928   28     [drv. 2, part. 1]
  379.   E:     21291008      2095104   10     19195904   90     [drv. 1, part. 2]
  380.   F:     21291008            0    0     21291008  100     [drv. 2, part. 2]
  381.   G:    104738816     31784960   30     72953856   70     [drv. 3]
  382.   H:       324096        99328   31       224768   69     [RAM drive]
  383. =======================================================
  384. Total   190333440     68498432   36    121835008   64
  385.  
  386.  
  387.   [drv. is drive number and part. is partition number]
  388.  
  389.  
  390. The substr[] functions left fill each value so the columns line up.  The 
  391. percentages can hold from 1 to 3 digits as shown.  Each percentage is 
  392. round up as needed.  Change the substr[] functions to suit if you need 
  393. more room (increase the 10s and 9s).
  394.  
  395. Use redirection to save the output to a file (disktot >filename) which
  396. makes it easy to see how fast your drives are filling up (yikes, half a 
  397. MB gone in only one day)!
  398.  
  399. Alas, DISKLEFT runs in less than 2 seconds while DISKTOT takes over 10 
  400. (with no floppy drives specified).  The batch file is much smaller than 
  401. the EXE file though.
  402.  
  403. The 'for %a...' line won't work as written if %a is replaced by %drv and 
  404. the colons left off.  Change this line to suit your own system.  I also 
  405. would like to add commas to the values to make them easier to read, but 
  406. don't want to make the batch file even more complicated than it already 
  407. is.  Have fun with this!
  408.  
  409. Saul
  410. ---
  411.  * Origin: Old Pueblo BBS - Tucson Computer Society (1:300/2)
  412. 
  413. ------------------------------------------------------------------------
  414.  
  415. Echo Flag : Y       Permanent: N       Export: N      Personal Read: N
  416.  
  417.  BBS: ASTRIX          Conference: 4DOS            Imported: 10/29/1992
  418.   To: JOHN DURSO                      Num: 15069      Date: 10/27/1992
  419. From: DAVE DENNEN                      Re: 14130      Time:  5:00 pm
  420. Subj: can 4dos do it?                Prvt: N          Read: N
  421.  
  422. JD>1) Check if it is between 12:01 am and 3:30am.
  423. JD>2) If yes, it would change the date back 1 day
  424. JD>3) run a program
  425. JD>4) change the date back to todays date
  426. JD>5) all the while not saving the date in a permanent location in
  427. JD>   case something happens like a power outage or something
  428.  
  429. check out the %_Date %_Time %_Eval functions!  They are very handy!
  430.  
  431. When I was in the navy I used them to calculate how many days I had
  432. left!
  433. Here is my alias that I used for that and maybe you could get an idea
  434. for what you are trying to do...
  435.  
  436. jeff echo Jeff has %@Eval[%@date[10/23/94]-%@Date[%_date]] <cont>...
  437.           days, %@int[%@eval[(24 - ((%@time[%_time] / 60) / <cont>...
  438.           60)]] hours, %@eval[(59 - ((%@time[%_time] / 60) <cont>...
  439.           %% 60)] minutes and %@eval[60 - (%@time[%_time] %% <cont>...
  440.           60)] seconds left in the Navy!!
  441.  
  442.                                    Dave.
  443. ---
  444.  ■ DeLuxe² 1.21 #11617 ■ Pursuing the dream!
  445.  * San Diego's Know Ware 619-223-7111(MNP)/5593(HST)/7299(DS)
  446.  * PostLink(tm) v1.03  KNOWWARE (#1355) : RelayNet(tm)
  447.                                                                                     
  448. PCRelay:DCINFO -> #16 MetroLink International Network
  449. 4.10              DC Info Exchange MetroLink International Hub
  450.           
  451.  
  452. ------------------------------------------------------------------------
  453.  
  454. Echo Flag : Y       Permanent: N       Export: N      Personal Read: N
  455.  
  456.  BBS: ASTRIX          Conference: 4DOS            Imported: 10/29/1992
  457.   To: JOHN DURSO                      Num: 15073      Date: 10/28/1992
  458. From: KETIL KRUMM                      Re: 14130      Time:  5:00 am
  459. Subj: can 4dos do it?                Prvt: N          Read: N
  460.  
  461. │JD> 1) Check if it is between 12:01 am and 3:30am.                         │
  462. │JD> 2) If yes, it would change the date back 1 day                         │
  463. │JD> 3) run a program                                                       │
  464. │JD> 4) change the date back to todays date                                 │
  465. │JD> 5) all the while not saving the date in a permanent location in        │
  466. │JD>    case something happens like a power outage or something             │
  467. ╘═══════════════════════════════════════════════════════════════════════════╛
  468.  
  469. Sure 4DOS can do it!  The question is not "Can 4DOS do it", but
  470. "How do I do it with 4DOS" :-))
  471.  
  472. Well, down to business:
  473.  
  474. 1)  The _TIME variable provides you with the system time in the
  475.     format HH:MM:SS (separator characters may vary depending on the
  476.     codepage you use).  This is a 24 hour reprecentation of the
  477.     time, so comparisons between times are easy.  Also, all
  478.     characters are always used, so there will be leading zeros for
  479.     the hour as well as for minutes and seconds.
  480.  
  481.     The following lines should do the trick (make sure the
  482.     separator characters are right!):
  483.  
  484.     IFF %_TIME GT 00:00:00 .AND. %_TIME LT 03:30:00 then
  485.         rem   ---   What you want to do goes here
  486.     ENDIFF
  487.  
  488. 2)  To change the date back one day is a bit more tricky. You'd
  489.     want a function that works allways, i.e. takes care of things
  490.     like on the first in a month switches to the 28th, 29th, 30th
  491.     or 31st of the previous mont, and, if neccessary, switches to
  492.     the previous year (in case the current date is Jan 1st).
  493.  
  494.     Here goes (remember to exchange all #'s with at-signs!):
  495.  
  496.     ***   Start of batch file
  497.  
  498.     set SepChar=-
  499.     set LastDate=312831303130313130313031
  500.     set CalcDate=%_date
  501.     set Day=%#substr[%_date, 3, 2]
  502.     set Month=%#substr[%_date, 0, 2]
  503.     set Year=%#substr[%_date, 6, 2]
  504.  
  505.     set Day=%#eval[%Day - 1]
  506.     iff %Day lt 1 then
  507.         rem   Month switch
  508.         set Month=%#eval[%Month - 1]
  509.         iff %Month lt 1
  510.             rem   Year switch - to Dec 31st
  511.             set Day=31
  512.             set Month=12
  513.             set Year=%#eval[%Year - 1]
  514.             rem   Handle year 2000!
  515.             if %Year eq -1 set Year=99
  516.         else
  517.             rem   Get last day in month from LastDate
  518.             set Day=%#substr[%LastDate, %#eval[(%Month-1)*2],2]
  519.             iff %Month eq 2 .or. %Month eq 02
  520.                 rem   Take special interest in February (leap year)
  521.                 if %#eval[(%Year+1900)%%4] eq 0 set Day=29
  522.             endiff
  523.         endiff
  524.     endiff
  525.  
  526.     rem   Make sure all values are two digits
  527.     if %#len[%Day] eq 1 set Day=0%Day
  528.     if %#len[%Month] eq 1 set Month=0%Month
  529.     if %#len[%Year] eq 1 set Year=0%Year
  530.  
  531.     rem   Now smack it all together to get a date string
  532.     set CalcDate=%Month%%SepChar%%Day%%SepChar%%Year
  533.  
  534.     ***   End of batch file
  535.  
  536.     Notes:
  537.  
  538.     The SepChar variable contains the character to be used as the
  539.     separator between month, day and year in the final string.  It
  540.     has no influence on the extraction of the values.  If you'd
  541.     rather have the vaklues separated by another character, just
  542.     alter the assignment accordingly.
  543.  
  544.     The variable LastDate contains the number of days in each month
  545.     as two characters, and is used to extract the last date in a
  546.     month in those cases where a month switch is necessary (where
  547.     current date is the 1st of a month).  February is set to have
  548.     28 days, and leap years are dealt with specially (see remark).
  549.  
  550.     CalcDate isn't used until end of program to assign the
  551.     resulting date value, but I like to initialize all vars at the
  552.     top.  Storing the resulting date in a separate variable will
  553.     make sure that nothing's altered in case of power failure etc.
  554.  
  555.     I haven't tested this, but it should work...  It will give you
  556.     the general idea, anyway.  3, 4 and 5 in your list resolves
  557.     temselves, once the above is applied.
  558. ---
  559.  ■ MegaMail 2.10 #786:Reality:  A special case of no general interest
  560.  * DASAN Databank +47+(0)34 59530-58518-58377-58662-58560-58944
  561.  * PostLink(tm) v1.03  DASAN (#352) : RelayNet(tm)
  562.                                                                                   
  563. PCRelay:DCINFO -> #16 MetroLink International Network
  564. 4.10              DC Info Exchange MetroLink International Hub
  565.           
  566.  
  567. ------------------------------------------------------------------------
  568.  
  569. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  570.  
  571.  BBS: ESCMAIL         Conference: Telix(ECHO      Imported: 10/29/1992
  572.   To: COLIN MAHER                     Num: 254        Date: 10/26/1992
  573. From: PHIL CROWN                       Re:            Time:  5:33 pm
  574. Subj: hsmodem                        Prvt: N          Read: N
  575.  
  576.  >> Quoting Colin Maher to All <<
  577.  
  578.  CM> TELL ME ... this hsmodem protocal I see on all the boards is it
  579.  CM> faster than Zmodem. Should I bother d/l it and adding it to my
  580.  CM> protocals etc. thants - ..
  581.  
  582. Do you mean HS Link?  YES, definitely get it!  Its as has error
  583. correction, crash recovery and is as just as fast Zmodem.  It can also
  584. up and download files at the same time.  The latest version is
  585. HS113C4.ZIP.
  586.  
  587. Here's a script for it.  This script will upload every file
  588. in the upload directory without asking, so you kinda need to watch it.
  589. The nice part is its fully automatic.  Just load it anytime; preferably
  590. before HS Link sends its first signature to start the download.
  591.  
  592. // HSLink.slt   HS Link Auto-Up/Downloading script.
  593. main() { update_term(); terminal();
  594. int hs, stat;
  595. str go[64]=""; go = _up_dir;
  596. str filespec[64]="*.*";
  597. str buf[32]="";
  598. strcat(_up_dir, filespec);
  599. hs = track("S*^B", 0);
  600. while(carrier()){ terminal();stat=track_hit(0);if(!stat) continue;
  601. else if (stat == hs) { 
  602. run("C:\Telix\HSLink.exe", GO, 0); } // you may have to edit this line.
  603. track_free(0); hangup(); return; } }
  604.  
  605. ... Phil        
  606.  
  607. --- Maximus 2.01wb
  608.  * Origin: Code 3 BBS - HST/V.32b (214)436-8753 / V.32 436-3826 (1:124/6106)
  609. 
  610. ------------------------------------------------------------------------
  611.  
  612. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  613.  
  614.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/30/1992
  615.   To: TERRY HORTON                    Num: 67         Date: 10/27/1992
  616. From: MORRIS TURPIN                    Re:            Time:  5:23 pm
  617. Subj: 4DOS menus                     Prvt: N          Read: N
  618.  
  619.  In a message dated Oct 26 at 20:03, Terry Horton of 1:130/41.3103
  620.  wrote to *.???:
  621.  
  622.  TH> Calling all =advanced= 4dos users!  Anyone know how to do this in 
  623.  TH> 4dos, or can it be done at all? 
  624.  
  625.  TH> @echo off
  626.  TH> set f1=%Enter                
  627.  TH> set f2=%CursorDown%%Enter
  628.  TH> set f3=%CursorDown%%CursorDown%%Enter
  629.  TH> set f4=%CursorDown%%CursorDown%%CursorDown%%Enter
  630.  TH> set f5=%CursorDown%%CursorDown%%CursorDown%%CursorDown%%Enter
  631.  TH> gosub Assign_Fkeys
  632.  TH> set do_this=%@select[main.men,0,0,24,40,Main Menu]
  633.  TH> quit
  634.  
  635.  
  636.  TH>  Here's main.men:
  637.  
  638.  TH> F1   Majong
  639.  TH> F2   Baccarat
  640.  TH> F3   Backgammon
  641.  TH> F4   Shoot the Moon
  642.  TH> F5   Pareesi Squares
  643.  
  644. Well...not exactly like that, but here is a part of my GAMES.BTM file that
  645. performs the selections that you are looking for:
  646.  
  647. :MAIN_MENU
  648.  
  649.         cls
  650.         setdos /s0:0
  651.         set choice=timeout
  652.  
  653.         drawbox 3 20 20 60 4 bright white on magenta fill white shadow
  654.         scrput 5 34 bright yellow on white Moey's Games
  655.         vscrput 7 27 bright white on white 1234567890
  656.         vscrput 7 30 bright white on white BCLMPSTWYQ
  657.         scrput 7 31 black on white ridge Menu
  658.         scrput 8 31 black on white hess
  659.         scrput 9 31 black on white eisure Suit Larry Menu
  660.         scrput 10 31 black on white onopoly
  661.         scrput 11 31 black on white olice Quest
  662.         scrput 12 31 black on white olitaire Menu
  663.         scrput 13 31 black on white etris
  664.         scrput 14 31 black on white heel of Fortune
  665.         scrput 15 31 black on white ahtzee
  666.         scrput 16 31 black on white uit - Exit to DOS
  667.         scrput 18 31 bright yellow on white Make your choice
  668.         scrput 18 47 bright blink yellow on white ...
  669.  
  670.         inkey /k"1234567890bclmpstwyqe" /w60 %%choice > nul
  671.         
  672.         if %choice eq 1 .or. %choice eq b goto BRIDGE
  673.         if %choice eq 2 .or. %choice eq c goto CHESS
  674.         if %choice eq 3 .or. %choice eq l goto LLL
  675.         if %choice eq 4 .or. %choice eq m goto MONOPOLY
  676.         if %choice eq 5 .or. %choice eq p goto PQ
  677.         if %choice eq 6 .or. %choice eq s goto SOLIT_MENU
  678.         if %choice eq 7 .or. %choice eq t goto TETRIS
  679.         if %choice eq 8 .or. %choice eq w goto WHEEL
  680.         if %choice eq 9 .or. %choice eq y goto YAHTZEE
  681.         if %choice eq 0 .or. %choice eq q .or. %choice eq e goto END
  682.         if %choice eq timeout goto TIMEOUT
  683.  
  684. Written completely with internal 4DOS commands and is very fast, at least on
  685. my 33MHz 386 <g>.  My total .btm file is 8125 bytes long.  For more complete
  686. information on any of the above commands, check the manual or browse through
  687. the HELP screens.
  688.  
  689.  
  690.  
  691. --- msged 2.07
  692.  * Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
  693.  
  694. ------------------------------------------------------------------------
  695.  
  696. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  697.  
  698.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/30/1992
  699.   To: YOU'ALL                         Num: 88         Date: 10/27/1992
  700. From: MAYNARD HOGG                     Re:            Time: 10:00 am
  701. Subj: Echo Is Off/On                 Prvt: N          Read: N
  702.  
  703. Tired of those *backward*-compatible C*M*A*D.C*M "ECHO is OFF/ON"
  704. messages? You can get rid of them with a 4DOS alias for ECHO.
  705.  
  706. Up until today, my alias file used the following.
  707.  
  708. echo iff "%1"=="" then *echo.^else *echo %&^endiff
  709.  
  710. In the process of answering a query, I hit upon a much simpler
  711. solution.
  712.  
  713. echo *echo.%&
  714.  
  715. Note, if you enter it at the command line, don't forget the back
  716. quotes!
  717.  
  718. alias echo `*echo.%&`
  719.  
  720. <later> Alas, to use this version, you have to rewrite all your batch
  721. files to use *echo on and *echo off so that you don't get the words on
  722. and off echoed to the screen.
  723.                       
  724. --- GEcho 1.00/beta+
  725.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  726.  
  727. ------------------------------------------------------------------------
  728.  
  729. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  730.  
  731.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/30/1992
  732.   To: PAUL CHVOSTEK                   Num: 68         Date: 10/25/1992
  733. From: WILLIAM BURROW                   Re:            Time:  2:02 pm
  734. Subj: Starting                       Prvt: N          Read: N
  735.  
  736.  * On Oct 22 12:37 Paul Chvostek quoth this to Darren Kay
  737.  
  738.  PC> a UNIX box with a command.  Changing a partition table while 
  739.  PC> in UNIX is no sweat, you just write something directly to the 
  740.  PC> device, and cry a lot if you screw up.  And make a script 
  741.  PC> that acts as the glue around whatever re-writes the thing, so 
  742.  PC> it's harder to screw up.  On the DOS side, I've never seen 
  743.  PC> anything that automates the process.
  744.  
  745. You can do this in (4)DOS by redirecting a file into fdisk (result is
  746. immediate and final, if you don't have a boot floppy ;).  Here are some
  747. samples:
  748.  
  749. Given that the partition table entries are:
  750. 1 - DOS 
  751. 2 - Other operating system
  752.  
  753. then in the following files put:
  754. [DOS-PART.cmd]
  755. 2
  756. 1
  757.  
  758. [OTHER-OS.cmd]
  759. 2
  760. 2
  761.  
  762. The procedure is to use the command (under DOS 5):
  763.                     fdisk < DOS-PART.cmd
  764. for DOS and:
  765.                     fdisk < OTHER-OS.cmd
  766. for your other operating system boot partition.
  767.  
  768. You might put things into a batch file like:
  769. [SHUTDOWN.bat]
  770. @echo off
  771. iff x%1==x then ^text
  772. Usage:
  773.         shutdown dos|other-os
  774.  
  775.   where:  dos      - changes partition to DOS boot and reboots
  776.           other-os - changes partition to Other-OS and reboots
  777.  
  778. endtext ^ quit ^ endiff
  779.  
  780. iff %1==dos      then ^ fdisk < dos-part.cmd ^ reboot ^ endiff
  781. iff %1==other-os then ^ fdisk < other-os.cmd ^ reboot ^ endiff
  782.  
  783. rem (endiffs required to allow drop through for Usage: )
  784.  
  785.  
  786. Will.
  787.  
  788. --- msgedsq 2.1
  789.  * Origin: Squish squash, I was reading my mail... (1:255/3.202)
  790.  
  791. ------------------------------------------------------------------------
  792.  
  793. Echo Flag : Y       Permanent: N       Export: N      Personal Read: N
  794.  
  795.  BBS: ASTRIX          Conference: 4DOS            Imported: 11/01/1992
  796.   To: JOHN DURSO                      Num: 15083      Date: 10/28/1992
  797. From: JORJ STRUMOLO                    Re: 14130      Time:  3:00 pm
  798. Subj: CAN 4DOS DO IT?                Prvt: N          Read: N
  799.  
  800. JD│1) Check if it is between 12:01 am and 3:30am.
  801.  
  802.  if %#time[%_time] ge 12600 goto skip
  803.  
  804. JD│2) If yes, it would change the date back 1 day
  805.  
  806.  set mm=%#substr[%_date,0,2]     ; play with this set
  807.  set dd=%#substr[%_date,3,2]
  808.  set yy=%#substr[%_date,6,2]
  809.  
  810.  setlocal                        ; needed to restore
  811.  
  812.  if %dd ne 01 goto not_1st
  813.  
  814.  if %mm eq 01 set yy=%#eval[%yy-1]   ; New Year's Day?
  815.  
  816.   iff %mm eq 04     ;  Thirty days hath September....
  817.  .or. %mm eq 06
  818.  .or. %mm eq 09
  819.  .or. %mm eq 11 then set dd=31 ^ else set dd=32
  820.  
  821. :not_1st
  822.  set mm=%#eval[%mm+1]
  823.  
  824.  date %#eval[%mm-1]-%#eval[%dd-1]-yy
  825.  
  826. JD│3) run a program
  827.  
  828.  run program run.....
  829. :skip
  830.  
  831. JD│4) change the date back to today's date
  832.  
  833.  endlocal              ;  gets you back what you had originally
  834.  date %mm-%dd-%yy      ;  I don't know if this is really needed
  835.  
  836. JD│5) all the while not saving the date in a permanent location in
  837.   │   case something happens like a power outage or something.
  838.  
  839.  set mm= ^ set dd= ^ set yy=   ; clears these
  840.  
  841. ─────
  842.  
  843.     Done.  Presuming you don't lose power during the program, you're
  844.  okay.  But you *are* changing the date, the real one, not just a copy.
  845.  You have to, since that's what the program's looking at.  And if you
  846.  lose power during the program, you're stuck with the changed date.
  847.  
  848.     I also won't swear to anything in this.  I think it'll work, and
  849.  that I covered all the contingencies, but it's quite possible I got
  850.  lost somewhere.  It's near the limits of my conditionality thinking.
  851.  Particularly setlocal/endlocal I'm fuzzy on; I've never used them
  852.  myself.  I don't know how much is saved in the "environment".  Is the
  853.  current date in there, even if it doesn't show up with SET, for
  854.  instance?  I don't think so.
  855. ---
  856.  ■ SPEED 1.3d #1019 ■ Stop that man! He's thinking! ■
  857.  * Eagles Nest Communications (401)732-5290 Serving RI since '84!
  858.  * PostLink(tm) v1.03  EAGLE (#8) : RelayNet(tm) HUB
  859.                  
  860. PCRelay:DCINFO -> #16 MetroLink International Network
  861. 4.10              DC Info Exchange MetroLink International Hub
  862.           
  863.  
  864. ------------------------------------------------------------------------
  865.  
  866. Echo Flag : Y       Permanent: N       Export: N      Personal Read: N
  867.  
  868.  BBS: ASTRIX          Conference: 4DOS            Imported: 11/01/1992
  869.   To: JOHN DURSO                      Num: 15106      Date: 10/29/1992
  870. From: MARK D. SHADLEY                  Re: 14130      Time:  6:00 am
  871. Subj: can 4dos do it?                Prvt: N          Read: N
  872.  
  873. JD│ In summary, I'd like to
  874.  
  875. JD│ 1) Check if it is between 12:01 am and 3:30am.
  876. JD│ 2) If yes, it would change the date back 1 day
  877. JD│ 3) run a program
  878. JD│ 4) change the date back to todays date
  879. JD│ 5) all the while not saving the date in a permanent location in
  880. JD│    case something happens like a power outage or something
  881.  
  882. This is a btm: (the lines that don't go to the left margin are
  883.                 continuations of the preceding lines, shortened
  884.                 here, for mail transfer)
  885. --------------------------------------------------------------
  886. iff %@time[%_time] gt %@time[00:01:00] .and. %@time[%_time] lt
  887.     %@time[03:30:00] then
  888.  
  889. echo %_date >! d:\path\date.$$$
  890.  
  891. date %@substr[%_date,0,2]-%@eval[%@substr[%_date,3,2]-1]-
  892.      %@substr[%_date,6,2]
  893.  
  894. YOUR PROGRAM GOES HERE
  895.  
  896. date < d:\path\date.$$$
  897.  
  898. else
  899. endiff
  900. --------------------------------------------------------------
  901. If you really DON'T want today's date saved in a permanent location,
  902. make the 'd:\path\date.$$$' point to a small RAM disk.
  903. 'date.$$$' will always be overwritten, with the current date.
  904.  
  905. Mark
  906. ---
  907.  ■ OLX 2.1 TD ■ ... I got them ol' postlink blues ... again ...
  908.  * N.S.T.T.Z. Fullerton, Ca. 714-879-4052 HST Not v.32!
  909.  * PostLink(tm) v1.03  NSTTZ (#363) : RelayNet(tm)
  910.                        
  911. PCRelay:DCINFO -> #16 MetroLink International Network
  912. 4.10              DC Info Exchange MetroLink International Hub
  913.           
  914.  
  915. ------------------------------------------------------------------------
  916.  
  917. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  918.  
  919.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/31/1992
  920.   To: TERRY HORTON                    Num: 127        Date: 10/29/1992
  921. From: FURLAN PRIMUS                    Re:            Time:  9:23 pm
  922. Subj: 4DOS menus                     Prvt: N          Read: N
  923.  
  924. Regarding the original message from Terry Horton of 1:130/41.3103
  925. writing to Morris Turpin on <Oct 28 12:14> while asserting:
  926.  
  927.  TH> Thanks for the reply, Morris.  Very interesting menu, especially 
  928.  TH> the use of vscrput.  The problem for me is that it takes too long 
  929.  TH> to construct or modify a menu of this type compared to using 
  930.  TH> %@select, which takes one line of code and an ASCII file to 
  931.  TH> create.  
  932.  
  933. actually, you don't even need the ASCII file:  <g>
  934.  
  935. text | set choice=%@substr[%@select[con,5,16,20,30, choose one ],0]
  936. Reset Out
  937. Poll
  938. FREQ
  939. Log
  940. Bonk
  941. Color
  942. Control
  943. Echo Report
  944. Edit
  945. Max
  946. Stats
  947. User
  948. Vfam
  949. Wimm
  950. Zgen
  951. Answers
  952. Silt
  953. Quit
  954. endtext
  955.  
  956. if "%choice" == "" gosub quit
  957. gosub %choice
  958. goto top
  959.  
  960. ::::::::::
  961. :quit
  962. ::::::::::
  963.  
  964. endlocal
  965. cls
  966. quit
  967. return
  968.  
  969. (and all the subroutines would go here...)
  970.  
  971. ------------------------------------
  972.  
  973. got it from right here, in the 4DOS echo, i don't recall who suggested it...
  974.  
  975. fl
  976.  
  977. --- msgedsq 2.1a
  978.  * Origin: SQUISHed MUFFINs make you TUBby, eh? (1:141/590)
  979.  
  980. ------------------------------------------------------------------------
  981.  
  982. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  983.  
  984.  BBS: ESCMAIL         Conference: 4dos            Imported: 10/31/1992
  985.   To: ALL                             Num: 120        Date: 10/29/1992
  986. From: YOUSUF KHAN                      Re:            Time:  8:36 am
  987. Subj: Daylight Savings               Prvt: N          Read: N
  988.  
  989. Here's a little something I created which you might find useful. It's a
  990. batchfile that can determine if today's date falls into daylight savings time
  991. or standard time. I created it because I have a program which regularly calls
  992. a local atomic time beacon to update my computer clock. The problem with this
  993. time beacon is that you have to manually state whether it's daylight savings
  994. time or standard time. But you don't have to use it for that purpose, you can
  995. just use it for your own amusement.
  996.  
  997. The rule is daylight savings time starts on the first Sunday in April, and
  998. standard time starts on the last Sunday in October. Also it never starts
  999. until 2:00AM on those days.
  1000.  
  1001. The following batchfile uses 4dos internal commands only. I realize that I
  1002. may have been able to do it easier if I had an external utility like Awk or
  1003. Ronset, but I wanted to use 4dos alone to do it.
  1004.  
  1005. You should note that this batchfile assumes that you are using code page
  1006. #850, which uses the infinitely more logical European date format, dd-mm-yy.
  1007. If you're not using code page #850 then you should either make some
  1008. modifications to the batchfile, or use the "CHCP 850" command to change your
  1009. code page.
  1010.  
  1011. Here's an overview of what the batchfile is doing. It first saves today's
  1012. date to an environment variable, %REALDATE. It also extracts this year from
  1013. today's date, in the env varb %YEAR. It then proceeds to determine standard
  1014. time fallback date, by changing the system date to each date in the last week
  1015. of October, so that it can determine which date falls on a Sunday. Once it
  1016. finds the Sunday date it saves it to env varb %STDTMDATE. Similarly, it also
  1017. determines daylight savings time by trying out each day in the first week of
  1018. April to see if it's on a Sunday or not, saving to env varb %DAYTMDATE. It
  1019. restores the date to today's real date. It then converts these dates into the
  1020. number of days that have passed since Jan 1, 1980, using the %@DATE[...]
  1021. function. This way each date can be compared mathematically. If today's date
  1022. is somewhere between daylight and standard time, then there's not much doubt
  1023. where it falls. However if today's date is exactly the same as either the
  1024. daylight or standard dates, then an additional check is done to see if the
  1025. time is greater than 2:00AM or not; if not, then it's not yet time to switch.
  1026.  
  1027. ========================================================================
  1028. @echo off
  1029. set realdate=%_date
  1030. set year=%@substr[%_date,6,2]
  1031. rem Get Std time fallback date
  1032. for %a in (25 26 27 28 29 30 31) do (
  1033.         date %a-10-%year
  1034.         if "%_dow" eq "sun" set stdtmdate=%_date
  1035.         )
  1036. echo Standard Time fallback date: %stdtmdate
  1037. rem Get Daylite time jumpforward date
  1038. for %a in (1 2 3 4 5 6) do (
  1039.         date %a-04-%year
  1040.         if "%_dow" eq "sun" set daytmdate=%_date
  1041.         )
  1042. echo Daylight Time jumpforward date: %daytmdate
  1043. date %realdate
  1044. echo Today's date: %realdate
  1045. rem convert all dates into comparable numbers
  1046. set realdate=%@date[%realdate]
  1047. set daytmdate=%@date[%daytmdate]
  1048. set stdtmdate=%@date[%stdtmdate]
  1049. iff %realdate gt %daytmdate .and. %realdate lt %stdtmdate then
  1050.         rem definitely Daylite savings time
  1051.         echo It's Daylight Savings time!
  1052. elseiff %realdate eq %daytmdate then
  1053.         rem right on daylite date
  1054.         iff %@time[%_time] lt %@time[02:00:00] then
  1055.                 echo It's not quite Daylight Savings Time, yet.
  1056.         else
  1057.                 echo Today is the first day of Daylight Savings Time!
  1058.         endiff
  1059. elseiff %realdate eq %stdtmdate then
  1060.         rem right on std time date
  1061.         iff %@time[%_time] lt %@time[02:00:00] then
  1062.                 echo It's not quite Standard Time, yet.
  1063.         else
  1064.                 echo Today is the first day of Standard Time!
  1065.         endiff
  1066. else
  1067.         rem Definitely Std time
  1068.         echo It's Standard Time!
  1069. endiff
  1070. unset realdate,year,stdtmdate,daytmdate
  1071. =======================================================================
  1072.  
  1073.                                                 Yousuf Khan
  1074.  
  1075. --- GoldED 2.40
  1076.  * Origin: Ottawa,Ont,Can,Earth,Sun,Milky Way,Virgo_supercluster
  1077. (1:163/215.6)
  1078.  
  1079. ------------------------------------------------------------------------
  1080.  
  1081. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1082.  
  1083.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/01/1992
  1084.   To: DAYTON LIVINGSTON               Num: 78         Date: 10/29/1992
  1085. From: MAYNARD HOGG                     Re:            Time:  7:01 am
  1086. Subj: Descript.Ion                   Prvt: N          Read: N
  1087.  
  1088.  
  1089.  
  1090.  
  1091. ------------------------------------------------------------------------
  1092.  
  1093. Echo Flag : Y       Permanent: N       Export: N      Personal Read: N
  1094.  
  1095.  BBS: ASTRIX          Conference: 4DOS            Imported: 11/03/1992
  1096.   To: EMIL SIT                        Num: 15119      Date: 10/31/1992
  1097. From: JIM GOMES                        Re: 14144      Time: 12:00 pm
  1098. Subj: Directory sorting              Prvt: N          Read: N
  1099.  
  1100.  
  1101. ES> By default, 4dos does directories sorted by filename. Is there anyway to
  1102. ES> make it sort by extension without using an alias (like dir =*dir /oe)?
  1103.  
  1104. Yes.  Add the /oe switch to an environment variable called DIRCMD like
  1105. so:
  1106.  
  1107.  
  1108. set DIRCMD=/oe
  1109.  
  1110. This will apply the /oe switch to all dir commands.
  1111. ---
  1112.  ■ SPEED 1.20 [NR] ■ Tag line thievery..Comin' up next on Geraldo.
  1113.  * The Brass Cannon::Orem Utah::(801)226-8310
  1114.  * PostLink(tm) v1.03  BRASS (#1126) : RelayNet(tm)
  1115.                                             
  1116. PCRelay:DCINFO -> #16 MetroLink International Network
  1117. 4.10              DC Info Exchange MetroLink International Hub
  1118.           
  1119.  
  1120. ------------------------------------------------------------------------
  1121.  
  1122. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1123.  
  1124.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/03/1992
  1125.   To: ALL                             Num: 92         Date: 10/30/1992
  1126. From: RICHARD ROBERTSON                Re:            Time:  2:47 pm
  1127. Subj: 4PIANO.BTM                     Prvt: N          Read: N
  1128.  
  1129. Hello!
  1130.  
  1131. I hope there hasn't been anything like this posted here recently - apologies
  1132. in advance - this echo is sooo busy <g>. Anyway my kids liked it. Watch out
  1133. for commas, apostrophies and spaces - they are not trapped.  The BTM is
  1134. mostly hard coded - you could add a record and playback routines if you had
  1135. the mind to. Enjoy...
  1136. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
  1137.       O \
  1138. ::
  1139. :: 4PIANO.BTM   version 1.0
  1140. :: 29th October 1992 Richard Robertson
  1141. :: 3:640/556.6@Fidonet 61:6700/160@Worldnet
  1142. ::
  1143. cls cya on bla
  1144. inkey /k"12345678" Note duration (1-8) %%l
  1145. text
  1146.  ╒══════════════════════════╕
  1147.  │-   -                     │
  1148.  │       Q W E R T Y U I    │
  1149.  │ Low   C D E F G A B C    │
  1150.  │                          │
  1151.  │       A S D F G H J K    │
  1152.  │ Med   C D E F G A B C    │
  1153.  │                          │
  1154.  │       Z X C V B N M .    │
  1155.  │ Hi    C D E F G A B C    │
  1156.  │                          │
  1157.  │       4PIANO - V1.0      │
  1158.  │                          │
  1159.  ╘══════════════════════════╛
  1160. endtext
  1161. scrput 2 3 bri whi on blu ESC
  1162. :begin
  1163. inkey %%keyp >NUL:
  1164. if %keyp eq  goto done
  1165. iff %keyp eq Q then scrput 4 9 blu on whi C
  1166.     beep 131 %l
  1167.     scrput 4 9 cya on bla C
  1168.     endiff
  1169. iff %keyp eq W then scrput 4 11 blu on whi D
  1170.     beep 147 %l
  1171.     scrput 4 11 cya on bla D
  1172.     endiff
  1173. iff %keyp eq E then scrput 4 13 blu on whi E
  1174.     beep 165 %l
  1175.     scrput 4 13 cya on bla E
  1176.     endiff
  1177. iff %keyp eq R then scrput 4 15 blu on whi F
  1178.     beep 175 %l
  1179.     scrput 4 15 cya on bla F
  1180.     endiff
  1181. iff %keyp eq T then scrput 4 17 blu on whi G
  1182.     beep 196 %l
  1183.     scrput 4 17 cya on bla G
  1184.     endiff
  1185. iff %keyp eq Y then scrput 4 19 blu on whi A
  1186.     beep 220 %l
  1187.     scrput 4 19 cya on bla A
  1188.     endiff
  1189. iff %keyp eq U then scrput 4 21 blu on whi B
  1190.     beep 248 %l
  1191.     scrput 4 21 cya on bla B
  1192.     endiff
  1193. iff %keyp eq I then scrput 4 23 blu on whi C
  1194.     beep 262 %l
  1195.     scrput 4 23 cya on bla C
  1196.     endiff
  1197. iff %keyp eq A then scrput 7 9 red on whi C
  1198.     beep 523 %l
  1199.     scrput 7 9 cya on bla C
  1200.     endiff
  1201. iff %keyp eq S then scrput 7 11 red on whi D
  1202.     beep 587 %l
  1203.     scrput 7 11 cya on bla D
  1204.     endiff
  1205. iff %keyp eq D then scrput 7 13 red on whi E
  1206.     beep 659 %l
  1207.     scrput 7 13 cya on bla E
  1208.     endiff
  1209. iff %keyp eq F then scrput 7 15 red on whi F
  1210.     beep 698 %l
  1211.     scrput 7 15 cya on bla F
  1212.     endiff
  1213. iff %keyp eq G then scrput 7 17 red on whi G
  1214.     beep 784 %l
  1215.     scrput 7 17 cya on bla G
  1216.     endiff
  1217. iff %keyp eq H then scrput 7 19 red on whi A
  1218.     beep 880 %l
  1219.     scrput 7 19 cya on bla A
  1220.     endiff
  1221. iff %keyp eq J then scrput 7 21 red on whi B
  1222.     beep 988 %l
  1223.     scrput 7 21 cya on bla B
  1224.     endiff
  1225. iff %keyp eq K then scrput 7 23 red on whi C
  1226.     beep 1046 %l
  1227.     scrput 7 23 cya on bla C
  1228.     endiff
  1229. iff %keyp eq Z then scrput 10 9 bri gre on whi C
  1230.     beep 1046 %l
  1231.     scrput 10 9 cya on bla C
  1232.     endiff
  1233. iff %keyp eq X then scrput 10 11 bri gre on whi D
  1234.     beep 1175 %l
  1235.     scrput 10 11 cya on bla D
  1236.     endiff
  1237. iff %keyp eq C then scrput 10 13 bri gre on whi E
  1238.     beep 1318 %l
  1239.     scrput 10 13 cya on bla E
  1240.     endiff
  1241. iff %keyp eq V then scrput 10 15 bri gre on whi F
  1242.     beep 1397 %l
  1243.     scrput 10 15 cya on bla F
  1244.     endiff
  1245. iff %keyp eq B then scrput 10 17 bri gre on whi G
  1246.     beep 1568 %l
  1247.     scrput 10 17 cya on bla G
  1248.     endiff
  1249. iff %keyp eq N then scrput 10 19 bri gre on whi A
  1250.     beep 1760 %l
  1251.     scrput 10 19 cya on bla A
  1252.     endiff
  1253. iff %keyp eq M then scrput 10 21 bri gre on whi B
  1254.     beep 1973 %l
  1255.     scrput 10 21 cya on bla B
  1256.     endiff
  1257. :: Kludge - skip comma key
  1258. iff %keyp eq . then scrput 10 23 bri gre on whi C
  1259.     beep 2093 %l
  1260.     scrput 10 23 cya on bla C
  1261.     endiff
  1262. goto begin
  1263. :done
  1264. scrput 2 3 bri whi on red ESC
  1265. beep 30 5 19 1 30 5
  1266. scrput 2 3 cya on bla ESC
  1267. unset keyp,l
  1268. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
  1269.       O \
  1270.  
  1271.  
  1272. Regards,
  1273. Richard.
  1274.  
  1275.  
  1276.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  1277.                         >> Continued in next message <<
  1278.  
  1279. ------------------------------------------------------------------------
  1280.  
  1281. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1282.  
  1283.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/03/1992
  1284.   To: ALL                             Num: 123        Date: 10/29/1992
  1285. From: YOUSUF KHAN                      Re:            Time:  8:36 am
  1286. Subj: Daylight Savings               Prvt: N          Read: N
  1287.  
  1288. Here's a little something I created which you might find useful. It's a
  1289. batchfile that can determine if today's date falls into daylight savings time
  1290. or standard time. I created it because I have a program which regularly calls
  1291. a local atomic time beacon to update my computer clock. The problem with this
  1292. time beacon is that you have to manually state whether it's daylight savings
  1293. time or standard time. But you don't have to use it for that purpose, you can
  1294. just use it for your own amusement.
  1295.  
  1296. The rule is daylight savings time starts on the first Sunday in April, and
  1297. standard time starts on the last Sunday in October. Also it never starts
  1298. until 2:00AM on those days.
  1299.  
  1300. The following batchfile uses 4dos internal commands only. I realize that I
  1301. may have been able to do it easier if I had an external utility like Awk or
  1302. Ronset, but I wanted to use 4dos alone to do it.
  1303.  
  1304. You should note that this batchfile assumes that you are using code page
  1305. #850, which uses the infinitely more logical European date format, dd-mm-yy.
  1306. If you're not using code page #850 then you should either make some
  1307. modifications to the batchfile, or use the "CHCP 850" command to change your
  1308. code page.
  1309.  
  1310. Here's an overview of what the batchfile is doing. It first saves today's
  1311. date to an environment variable, %REALDATE. It also extracts this year from
  1312. today's date, in the env varb %YEAR. It then proceeds to determine standard
  1313. time fallback date, by changing the system date to each date in the last week
  1314. of October, so that it can determine which date falls on a Sunday. Once it
  1315. finds the Sunday date it saves it to env varb %STDTMDATE. Similarly, it also
  1316. determines daylight savings time by trying out each day in the first week of
  1317. April to see if it's on a Sunday or not, saving to env varb %DAYTMDATE. It
  1318. restores the date to today's real date. It then converts these dates into the
  1319. number of days that have passed since Jan 1, 1980, using the %@DATE[...]
  1320. function. This way each date can be compared mathematically. If today's date
  1321. is somewhere between daylight and standard time, then there's not much doubt
  1322. where it falls. However if today's date is exactly the same as either the
  1323. daylight or standard dates, then an additional check is done to see if the
  1324. time is greater than 2:00AM or not; if not, then it's not yet time to switch.
  1325.  
  1326. ========================================================================
  1327. @echo off
  1328. set realdate=%_date
  1329. set year=%@substr[%_date,6,2]
  1330. rem Get Std time fallback date
  1331. for %a in (25 26 27 28 29 30 31) do (
  1332.         date %a-10-%year
  1333.         if "%_dow" eq "sun" set stdtmdate=%_date
  1334.         )
  1335. echo Standard Time fallback date: %stdtmdate
  1336. rem Get Daylite time jumpforward date
  1337. for %a in (1 2 3 4 5 6) do (
  1338.         date %a-04-%year
  1339.         if "%_dow" eq "sun" set daytmdate=%_date
  1340.         )
  1341. echo Daylight Time jumpforward date: %daytmdate
  1342. date %realdate
  1343. echo Today's date: %realdate
  1344. rem convert all dates into comparable numbers
  1345. set realdate=%@date[%realdate]
  1346. set daytmdate=%@date[%daytmdate]
  1347. set stdtmdate=%@date[%stdtmdate]
  1348. iff %realdate gt %daytmdate .and. %realdate lt %stdtmdate then
  1349.         rem definitely Daylite savings time
  1350.         echo It's Daylight Savings time!
  1351. elseiff %realdate eq %daytmdate then
  1352.         rem right on daylite date
  1353.         iff %@time[%_time] lt %@time[02:00:00] then
  1354.                 echo It's not quite Daylight Savings Time, yet.
  1355.         else
  1356.                 echo Today is the first day of Daylight Savings Time!
  1357.         endiff
  1358. elseiff %realdate eq %stdtmdate then
  1359.         rem right on std time date
  1360.         iff %@time[%_time] lt %@time[02:00:00] then
  1361.                 echo It's not quite Standard Time, yet.
  1362.         else
  1363.                 echo Today is the first day of Standard Time!
  1364.         endiff
  1365. else
  1366.         rem Definitely Std time
  1367.         echo It's Standard Time!
  1368. endiff
  1369. unset realdate,year,stdtmdate,daytmdate
  1370. =======================================================================
  1371.  
  1372.                                                 Yousuf Khan
  1373.  
  1374. --- GoldED 2.40
  1375.  * Origin: Ottawa,Ont,Can,Earth,Sun,Milky Way,Virgo_supercluster
  1376. (1:163/215.6)
  1377.  
  1378. ------------------------------------------------------------------------
  1379.  
  1380. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1381.  
  1382.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/03/1992
  1383.   To: STEVE HODSDON                   Num: 134        Date: 11/01/1992
  1384. From: BRUCE PERATHANER                 Re:            Time:  4:01 pm
  1385. Subj: Lost Aliases                   Prvt: N          Read: N
  1386.  
  1387. SH>Due to a MAJOR brain lapse on my part, my alias file was deleted.  Has
  1388. someb
  1389. SH>been saving the different aliases that pass through here?
  1390.  
  1391. Steve, I am a some-what new user but here is my alias file.
  1392.  
  1393. D=cls^dir/4/a/d/j/oe/v
  1394. N=cls^dir/4/a/d/j/o:gn/v
  1395. S=cls^dir/4/a/d/s/j/o:gn/v/p
  1396. cc=cdd c:\^cls^dir/4/a/d/j/oe/v
  1397. 4d=cdd c:\4dos^cls^dir/4a/d/j/oe/v
  1398. AA=a:^cls^dir/4/a/d/j/o:gn/v
  1399. pd=cdd c:\pcplus^cls^dir/4a/d/j/oe/v
  1400. CALC=echo The answer is:  %@eval[%&]
  1401. APPEND=echo DO NOT use this Command!
  1402. PRINTER=echo Type ALT (Pad Lock 155G)CR (CtrlZ)^copy con: prn:
  1403. PC=cdd c:\pcplus^pcplus /b^cdd c:\pcplus\dlf^n
  1404. L=listns /m
  1405. fx=cdd c:\fx^*fx
  1406. @Alt-F1=cdd c:\fx^*fx^cd c:\^nr
  1407. machine=nbhelp
  1408. @Alt-F2=mpower -on^cdd c:\pcplus^keystack 0 13 Alt-D^pcplus /b^mpower
  1409. -off^cdd
  1410. optimize=*optimize /cmd=c:\qemm\4dos.cmd
  1411. win=*win /3
  1412. sd=select del [*.*]^n
  1413. sdp=select del /p [*.*]^n
  1414. sz=select zs -a %1 [*.*]^n
  1415. nd=md %1^cd %1^n
  1416. cache=cdd c:\hyperdsk^hyperdkx /y
  1417. status=*sample.bat
  1418. smp=select move /p [*.*] %1^cdd %1^n
  1419. sm=select move [*.*] %1^cdd %1^n
  1420. killbak=global del /p *.bak^cd c:\^n
  1421. sk=pushd c:\sk2^*sk2^popd^n     
  1422. smr=select move [*.*] c:\air\reader^cdd c:\air\reader^slmr^cdd c:\^l
  1423. pkzip=zs
  1424. szm=select zs -m %1 [*.*]
  1425. inibak=cdd c:\^xcopy /s c:\*.ini a:\%1^cdd %1^n
  1426. sc=select copy [*.*] %1^cdd %1^n
  1427. dd=cdd d:\^cls^n
  1428. XDISK=pushd c:\HYPERDSK\XD^XDISK.EXE %1 %2^pause^md d:\temp^popd^n
  1429.  
  1430. Hope this helps some.
  1431.                    Bruce
  1432.  
  1433.  
  1434.  * SLMR 2.1a * Minds, like parachutes, work only when open.
  1435. --- RyPacker v2.5
  1436.  * Origin: AirPower, Home of the AIRGUN Echo..(215)259-2198 (1:273/408)
  1437.  
  1438. ------------------------------------------------------------------------
  1439.  
  1440. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1441.  
  1442.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/05/1992
  1443.   To: TERRY HORTON                    Num: 138        Date: 10/31/1992
  1444. From: DAYTON LIVINGSTON                Re:            Time: 10:31 am
  1445. Subj: 4DOS menus                     Prvt: N          Read: N
  1446.  
  1447. TH> Calling all =advanced= 4dos users!  Anyone know how to do
  1448. TH> this in 4dos, or can it be done at all?
  1449. TH> set f1=%Enter
  1450. TH> set f2=%CursorDown%%Enter
  1451. TH> gosub Assign_Fkeys
  1452. TH> set do_this=%@select[main.men,0,0,24,40,Main Menu]
  1453.  
  1454. Sorry Terry, but I don't believe that's possible.  However, it IS
  1455. possible to do basically the same thing:
  1456. _______O/_______CUT HERE_______O/________
  1457.        O\                      O\
  1458.  
  1459. @ECHO OFF
  1460. SETLOCAL^SET x=5^SET y=7
  1461.     :TOP
  1462. CLS BLU ON BLU BOR BLU^GOSUB initialize
  1463.    :READ
  1464. SCREEN %x 7^SET o=%@READSCR[%x,8,19]
  1465. SET n=%@READSCR[%x,4,1]^SET c=%@SUBSTR[%_FG,5,3]
  1466. SCRPUT %x 7 BRI WHI ON %c %@CHAR[255]%o%%@CHAR[255]
  1467. INKEY /K"1234567890[Up][Down][ESC][Enter]" %%key
  1468. IF %@ASCII[%key] EQ 27 GOTO 0
  1469. SCRPUT %x 7 BRI %c ON BLU %@CHAR[255]%o%%@CHAR[255]
  1470. IFF %@ASCII[%key] EQ 13 GOTO %n
  1471. IFF %key EQ @72 THEN^SET x=%@EVAL[%x -2]
  1472.     IF %x LT 3 SET x=21^ENDIFF
  1473. IFF %key EQ @80 THEN^SET x=%@EVAL[%x +2]
  1474.     IF %x GT 21 SET x=3^ENDIFF
  1475. IFF %@INDEX[0123456789,%key] GT -1 THEN
  1476.     SET n=%key^SET x=%@EVAL[(%n*2)+3]^GOTO %n^ENDIFF
  1477. GOTO read
  1478.     :1
  1479. SCRPUT 23 0 GRE ON BLA {Majong...........}^GOTO top
  1480.     :2
  1481. SCRPUT 23 0 GRE ON BLA {Baccarat.........}^GOTO top
  1482.     :3
  1483. SCRPUT 23 0 GRE ON BLA {Backgammon.......}^GOTO top
  1484.     :4
  1485. SCRPUT 23 0 GRE ON BLA {Shoot the Moon...}^GOTO top
  1486.     :5
  1487. SCRPUT 23 0 GRE ON BLA {Pareesi Squares..}^GOTO top
  1488.     :6
  1489. BEEP^GOTO read
  1490.     :7
  1491. BEEP^GOTO read
  1492.     :8
  1493. BEEP^GOTO read
  1494.     :9
  1495. BEEP^GOTO read
  1496.     :0
  1497. SCREEN 23 0^QUIT
  1498.     :INITIALIZE
  1499. COLOR BRI WHI ON BLU
  1500. TEXT
  1501.  
  1502.        Please Select A Game:
  1503.   +-------------------------+  Use the Up/Down arrow keys to
  1504.   | 0 :                     |  scroll through the entries shown.
  1505.   |---+---------------------|
  1506.   | 1 :                     |  Use ENTER to select an entry.
  1507.   |---+---------------------|
  1508.   | 2 :                     |  You may also select an entry by
  1509.   |---+---------------------|  hitting the number of the entry
  1510.   | 3 :                     |  and it will be executed.
  1511.   |---+---------------------|
  1512.   | 4 :                     |  You may re-do this screen in ANSI
  1513.   |---+---------------------|  to make it look nicer, then import
  1514.   | 5 :                     |  it into this BTM (Make sure you
  1515.   |---+---------------------|  keep the placement the same!)
  1516.   | 6 :                     |
  1517.   |---+---------------------|  You may exit either by scrolling
  1518.   | 7 :                     |  and selecting, hitting 0, or
  1519.   |---+---------------------|  hitting ESC.
  1520.   | 8 :                     |
  1521.   |---+---------------------|  Hope this works for you!
  1522.   | 9 :                     |
  1523.   +-------------------------+                           - Dayton
  1524. ENDTEXT
  1525. SCRPUT  3  7 BRI RED ON BLU %@CHAR[255]----- E X I T -----^REM 1
  1526. SCRPUT  5  7 BRI GRE ON BLU %@CHAR[255]Majong.............^REM 1
  1527. SCRPUT  7  7 BRI GRE ON BLU %@CHAR[255]Baccarat...........^REM 2
  1528. SCRPUT  9  7 BRI GRE ON BLU %@CHAR[255]Backgammon.........^REM 3
  1529. SCRPUT 11  7 BRI GRE ON BLU %@CHAR[255]Shoot the Moon.....^REM 4
  1530. SCRPUT 13  7 BRI GRE ON BLU %@CHAR[255]Pareesi Squares....^REM 5
  1531. SCRPUT 15  7 BRI YEL ON BLU %@CHAR[255]-      Empty      -^REM 6
  1532. SCRPUT 17  7 BRI YEL ON BLU %@CHAR[255]-      Empty      -^REM 7
  1533. SCRPUT 19  7 BRI YEL ON BLU %@CHAR[255]-      Empty      -^REM 8
  1534. SCRPUT 21  7 BRI YEL ON BLU %@CHAR[255]-      Empty      -^REM 9
  1535. RETURN
  1536. _______O/_______CUT HERE_______O/________
  1537.        O\                      O\
  1538.   Replace the "%@CHAR[255]"'s with the actual ASCII characters to
  1539. speed things up a bit after testing it.
  1540.   Replace the SCRPUT 23 0 GRE ON BLA {Majong...........} with the
  1541. actual commands for Majong (& etc).  The way I wrote it is for
  1542. testing purposes (it will run fine, but won't do anyting).
  1543.  
  1544. - Dayton
  1545.  
  1546.  * OLX 994 * MacIntosh: A computer with training wheels.
  1547.  
  1548. --- Maximus 2.00
  1549.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  1550.  
  1551. ------------------------------------------------------------------------
  1552.  
  1553. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1554.  
  1555.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/05/1992
  1556.   To: BRUCE PERATHANER                Num: 118        Date: 10/23/1992
  1557. From: MICHAEL JERKOVIC                 Re:            Time: 10:23 am
  1558. Subj: 4DOS v4.01(b)/list.com         Prvt: N          Read: N
  1559.  
  1560. BP>Well, I keep 4dos.doc on my hard drive as
  1561. BP>a Zip file.  I use List.com by
  1562. BP>hi-lighting 4dos.doc, hit V (to bring up 
  1563. BP>the archive), hit Alt-I, move
  1564. BP>cursor to the file I want to read, hit 
  1565. BP>Enter ,which brings up the file
  1566. BP>in List.com.
  1567.  
  1568. Hi Bruce
  1569.  
  1570. try the following aliases
  1571.  
  1572. l=c:\util\list.com 
  1573. doc=c:\arc\pkunzip -c c:\doc\doc.zip %1*.* | l /s
  1574.  
  1575. The second alias uses pkunzip's ability to pipe output
  1576. to the console, and hence straight into Bergs List.
  1577.  
  1578. This allows you to group all your docs, manuals and text
  1579. info into one zip file.  For example, my doc.zip contains
  1580. 4dos.doc; to list 4dos.doc all I need do is type DOC 4DOS.
  1581. I have about 4megs of text in my 1meg doc.zip.
  1582.  
  1583. Hope you find this useful.   ...mic...
  1584. a@+ ---a@+  X WinQwk 2.0b#0 X Unregistered Evaluation Copya@+
  1585. --- Squish v1.00-OS/2
  1586.  * Origin: The Lightning BBS - Don't Worry... Be Happy... (3:634/383)
  1587. 
  1588. ------------------------------------------------------------------------
  1589.  
  1590. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1591.  
  1592.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/05/1992
  1593.   To: ARAN SPENCE @ 954/403           Num: 111        Date: 11/02/1992
  1594. From: MAYNARD HOGG                     Re:            Time: 12:57 pm
  1595. Subj: Descriptions                   Prvt: N          Read: N
  1596.  
  1597. On 11-01-92, ARAN SPENCE @ 954/403 wrote ALL re: Descriptions
  1598.  
  1599. AS>Has anyone come up with at BTM which will describe only the files
  1600.   >that don't have descriptions?
  1601.  
  1602. Off the top of my head--pardon the sawdust <grin>--who needs a BTM
  1603. when an alias will do?
  1604.  
  1605. alias adddes `for %x in (%&) *if /%@descript[%x]/ == // *describe %x`
  1606.  
  1607. The above ALMOST works. For some reason, every so often the IF produces an
  1608. "Usage:" message.
  1609.  
  1610. AS>Yes, I know they can be done one at a time or in multiples on the
  1611.   >command line;
  1612.  
  1613. And then there are FDU and 4EDIT, which you get when you register... <grin>
  1614.  
  1615.  -- SPEED 1.10 #1086: 
  1616. --- GEcho 1.00/beta+
  1617.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  1618.  
  1619. ------------------------------------------------------------------------
  1620.  
  1621. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1622.  
  1623.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/05/1992
  1624.   To: DIRK DUNNING                    Num: 131        Date: 11/01/1992
  1625. From: ALEXANDER SKORODUMOV             Re:            Time:  4:48 pm
  1626. Subj: Minor request                  Prvt: N          Read: N
  1627.  
  1628. Hello Dirk!
  1629.  
  1630. Saturday October 24 1992, Dirk Dunning writes to Rex Conn:
  1631.  
  1632.  DD> It would be nice to a have a variable that identifies the revision level
  1633.  DD> of 4DOS being used (and of DOS if possible).  This would likely be used
  1634.  DD> most for information purposes, much as 'ver /r' is used.  For a very few
  1635.  DD> cases, it could be used to determine what action to take in a BAT or BTM
  1636.  DD> file based on how a function or command works in one version versus
  1637.  DD> another.
  1638.  
  1639. Use:
  1640.  
  1641.   Ver /r|(Input %%Line1^Input %%Line1^Input %%Line2)
  1642.  
  1643. Result:
  1644.  
  1645.   %Line1 = 4DOS  X.XX   DOS X.XX
  1646.   %Line2 = 4DOS  Revision X
  1647.                                       Good Luck,
  1648.                                                  SAS
  1649.  
  1650. --- QEdit 2.27
  1651.  * Origin: >>> The MMAS&CO Line <<< (2:5030/42)
  1652. ------------------------------------------------------------------------
  1653.  
  1654. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1655.  
  1656.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/05/1992
  1657.   To: WAYNE THOMASON                  Num: 122        Date: 10/27/1992
  1658. From: QIU XINCHUAN                     Re:            Time: 11:20 pm
  1659. Subj: Neat Idea                      Prvt: N          Read: N
  1660.  
  1661. Hi, I think I sent you some of my improvements over your prompt, but here
  1662. is my edited version of your prompt. I just think your prompt was great!
  1663. Anyway, do comment on my version...
  1664.  
  1665. Just replace all the ! with the Esc characters and it should work...
  1666. Join up the {...}
  1667.  
  1668. @echo off
  1669. if "%@name[%cmd%]"=="%@name[%0]" goto TheEnd
  1670. REM To guard against multiple copies from loading
  1671. REM My previous ver did not trap all..
  1672.  
  1673. :Preloop
  1674. set cmd=zzzz
  1675. REM Use cmd instead of temp coz temp already in use
  1676.  
  1677. echos ![s![1;1f![1;44;36m![K ( ) ![32m*![36m Date [![12C] ![32m*...
  1678. ...![36m Time [![5C] ![32m*![36m Mem [![3C] KB ![32m*...
  1679. ...![36m Fixed Disk [![%@len[%@diskfree[c:,m]]C] MB![u...
  1680. REM Draws the fields for Date, Time, Mem, Fixed Disk space...
  1681.  
  1682. if %_row=0 echo ![1;1H
  1683. echos ![1;37;41m%_cwds![0;1;31m>![32m>![33m>![35m>![36m>
  1684. REM Just a fancy prompt
  1685.  
  1686. :loop
  1687. echos ![s![1;3f![1;44;33m%_Shell![10C%_dow %_date...
  1688. ...![10C%@substr[%_time,0,5]![9C%@int[%@eval[%@dosmem[b]/1024]]...
  1689. ...![19C%@diskfree[c:,m]![u![0m
  1690. REM Finally fills in the variables (Time, Date,etc..) in the fields
  1691.  
  1692. input /w1 %%cmd
  1693. if "%cmd%"=="zzzz" goto loop
  1694. REM If no commands typed then just update the variables,
  1695. REM no need to redraw fields, thus less flickering and faster.
  1696.  
  1697. if "%cmd%"=="end" goto TheEnd
  1698. iff "%@substr[%cmd,0,1]"=="@" then
  1699.     call %@substr[%cmd,1]
  1700.  else call %cmd%
  1701.       history/a %cmd%
  1702. endiff
  1703. REM To save commands to command history if they
  1704. REM are not preceded by @ character
  1705.  
  1706. if not "%cmd%"=="" echo.
  1707. REM This is to echo a new line because after programs
  1708. REM this prompt just overlaps on the last line
  1709.  
  1710. goto Preloop
  1711. :TheEnd
  1712. unset cmd
  1713. --- GEcho 1.00/beta
  1714.  * Origin: 4 DOS - Choice of New Generation (6:600/602)
  1715.  
  1716. ------------------------------------------------------------------------
  1717.  
  1718. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1719.  
  1720.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/06/1992
  1721.   To: KEITH WINEKA                    Num: 80         Date: 11/02/1992
  1722. From: PAUL CHVOSTEK                    Re:            Time:  3:39 am
  1723. Subj: DESCRIPTIONS                   Prvt: N          Read: N
  1724.  
  1725. -> >>> 4DOS saves the file descriptions into a DESCRIPT.ION file.  Is
  1726. -> >>> it possible to use different name?
  1727. ->
  1728. -> >> No, there's no option to change the description file name (though
  1729. -> >> if you were adventurous you could patch 4DOS.COM and change the
  1730. -> >> strings there).
  1731. -> >> Why do you want/need to change the name?
  1732. ->
  1733. -> > I would be nice for many BBS operators if the name were "FILES.BBS"
  1734. -> and > it weren't hidden.
  1735. ->
  1736. -> I'll be the first to agree with that!  :-)
  1737.  
  1738. Well, Maximus lets you change the name of FILES.BBS to something else.
  1739. Why not DESCRIPT.ION?
  1740.  
  1741. The biggest problem I see with this is that the 4DOS DESCRIBE command
  1742. only lets you edit the first 40 characters of the description.  A better
  1743. solution might be to leave FILES.BBS as it is, and have a batch file
  1744. containing something like this:
  1745.  
  1746. -----
  1747. @echo off
  1748. if not exist files.bbs quit
  1749. attrib -h descript.ion
  1750. ren descript.ion descript.bak
  1751. set i=0
  1752. :loop
  1753.  if %i GT %@lines[files.bbs] goto end
  1754.  if exist %@word[0,%@line[0,files.bbs,%i]] gosub add_it
  1755.  set i=%@eval[1+%i]
  1756.  goto loop
  1757. :add_it
  1758.  set desc=%@line[files.bbs,%i]
  1759.  set first=%@index[%desc,%@word[1,%desc]]
  1760.  set desc=%@substr[%desc,%first,%@eval[%@len[%desc] - %first]
  1761.  describe %@word[0,%@line[files.bbs,%i]] "%desc"
  1762.  return
  1763. :end
  1764.  unset i
  1765.  set desc=
  1766.  set first=
  1767.  set desc=
  1768.  attrib +h descript.ion
  1769. -----
  1770.  
  1771. Note that I just wrote this, I haven't tested it.  It looks to me as if
  1772. it should work, but if it doesn't, you can probably fix whatever problem
  1773. it has.  My concern is whether "%desc" would be translated properly in
  1774. the describe line.  If it isn't, the line can be added manually with
  1775. ECHO redirected with append to >>descript.ion.
  1776.  
  1777. Another major reason not to use the same file for DESCRIPT.ION and
  1778. FILES.BBS is that while BBS programs don't care about whitespace between
  1779. the filename and the descript.ion, 4DOS does.  You'd get non-4DOS
  1780. readable description files if you wanted them to be human readable.
  1781.  
  1782. Here's a possibility -- just have whatever control characters are
  1783. translated by the [link] MECCA token in your files.bbs, so that
  1784. FILES.BBS actually contains:
  1785.  
  1786. [link]descript.ion
  1787.  
  1788. Would that work?  Again, the human-readable bit, but if you don't need
  1789. your files.bbs to be human readable, that's no problem.
  1790.  
  1791. pmc
  1792. --- FidoPCB v1.3 [ff053/x]
  1793.  * Origin: Canada Remote Systems, Mississauga, Ontario  (1:229/15)
  1794.  
  1795. ------------------------------------------------------------------------
  1796.  
  1797. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1798.  
  1799.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/06/1992
  1800.   To: SAUL LEVY                       Num: 92         Date: 11/03/1992
  1801. From: RICHARD ROBERTSON                Re:            Time: 12:00 pm
  1802. Subj: DISKTOT.BTM                    Prvt: N          Read: N
  1803.  
  1804. Hello Saul,
  1805.  
  1806.  
  1807.  SL> Alas, DISKLEFT runs in less than 2 seconds while DISKTOT takes
  1808.  SL> over 10 (with no floppy drives specified).  The batch file
  1809.  SL> is much smaller than the EXE file though.
  1810.  
  1811. Hmm.. BTM takes less than 2 seconds here on my 386-33.
  1812.  
  1813.  SL> The 'for %a...' line won't work as written if %a is replaced by
  1814.  SL> %drv and the colons left off.  Change this line to suit your
  1815.  SL> own system.  I also would like to add commas to the values
  1816.  SL> to make them easier to read, but don't want to make the
  1817.  SL> batch file even more complicated than it already is.  Have
  1818.  SL> fun with this!
  1819. Ok - well I added a search for drives routine to speed <g> things along a
  1820. bit. Uses %_lastdisk variable.
  1821. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _
  1822.       O \
  1823. @echo off
  1824. :: DISKTOT.BTM by Saul Levy, Tucson, Arizona, 10/22/92, version 1.1
  1825. :: Modified by Richard Robertson, 3rd Nov '92, 3:640/556.6@Fidonet
  1826. :: (added drive list search)
  1827. :: change %blanks string, and %blanks string output lengths to suit
  1828. :: This version handles 999999999, totals of 9999999999 and percentages
  1829. :: from 0 to 100 (the latter are rounded up to the next higher % as
  1830. :: needed)
  1831.  
  1832. rem Main routine
  1833.  
  1834. setlocal
  1835. set blanks=`         `
  1836.  
  1837. echo `Drive     Total         Used     %        Free     %`
  1838. echo `=======================================================`
  1839.  
  1840. set c=66
  1841. rem 66 = drive C - make this 64 for drive A
  1842. set lastd=%@ascii[%_lastdisk]
  1843. :loop
  1844. set c=%@eval[%c+1]
  1845. set a=%@char[%c]:
  1846. gosub getnums
  1847. if %lastd eq %c goto display
  1848. goto loop
  1849.  
  1850. :display
  1851. echo `=======================================================`
  1852.  
  1853. set dutp=%@int[%@eval[%dut/%dtt*100+.5]]
  1854. set dftp=%@int[%@eval[%dft/%dtt*100+.5]]
  1855.  
  1856. echos Total %@substr[%blanks,0,%@eval[10-%@len[%dtt]]] %dtt
  1857. echos   %@substr[%blanks,0,%@eval[10-%@len[%dut]]] %dut
  1858. echos  %@substr[%blanks,0,%@eval[3-%@len[%dutp]]] %dutp
  1859. echos   %@substr[%blanks,0,%@eval[10-%@len[%dft]]] %dft
  1860. echo  %@substr[%blanks,0,%@eval[3-%@len[%dftp]]] %dftp
  1861. endlocal
  1862. quit
  1863.  
  1864.  
  1865. rem Subroutine to get data about drives
  1866.  
  1867. :getnums
  1868.  
  1869. set dt=%@disktotal[%a]
  1870. set du=%@diskused[%a]
  1871. set dup=%@int[%@eval[%du/%dt*100+.5]]
  1872. set df=%@diskfree[%a]
  1873. set dfp=%@int[%@eval[%df/%dt*100+.5]]
  1874.  
  1875. set dtt=%@eval[%dtt+%dt]
  1876. set dut=%@eval[%dut+%du]
  1877. set dft=%@eval[%dft+%df]
  1878.  
  1879. echos   %a   %@substr[%blanks,0,%@eval[9-%@len[%dt]]] %dt
  1880. echos    %@substr[%blanks,0,%@eval[9-%@len[%du]]] %du
  1881. echos  %@substr[%blanks,0,%@eval[3-%@len[%dup]]] %dup
  1882. echos    %@substr[%blanks,0,%@eval[9-%@len[%df]]] %df
  1883. echo  %@substr[%blanks,0,%@eval[3-%@len[%dfp]]] %dfp
  1884.  
  1885. return
  1886.  
  1887. rem End of DISKTOT.BTM
  1888.  
  1889. --- msgedsq 2.1
  1890.  * Origin: Robbo's MailBox -=BNE QLD OZ=- (3:640/556.6)
  1891. 
  1892. ------------------------------------------------------------------------
  1893.  
  1894. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  1895.  
  1896.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/06/1992
  1897.   To: ALL                             Num: 93         Date: 10/31/1992
  1898. From: MARK STIEBEL                     Re:            Time:  2:24 am
  1899. Subj: SPACE.BTM                      Prvt: N          Read: N
  1900.  
  1901.  Hi all you fellow 4DOS dudes..
  1902.  
  1903.  Once again, prompted by a post by someone else in this echo (Saul Levy),
  1904. I have used their idea of a batch file to show drive info.
  1905.  
  1906. SPACE.BTM shows the total, free and used space and percentages of a drive,
  1907. and
  1908. draws a usage graph as well. It might take a few seconds the first time you
  1909. run it on a certain drive while 4DOS logs that drive, but such is life.
  1910.  
  1911. ----[ CUT HERE ]------------------------------
  1912. :: Author : Mark Stiebel,  3:633/159 (The Gate - (03)879-9082)
  1913. :: Written : 31/10/92
  1914. ::
  1915. :: Please feel free to distribute and modify
  1916. ::
  1917. :: There are a few things that could be modified and made better, but as
  1918. :: long as you specify a correct disk name, nothing can go wrong.
  1919. ::
  1920. :: Have fun.
  1921.  
  1922. :: Check if the user wants help - not that he'd need it.
  1923. IF %@SUBSTR[%1,1,1] == h GOTO Usage
  1924. IF %@SUBSTR[%1,1,1] == ? GOTO Usage
  1925. IF %@SUBSTR[%1,0,1] == h GOTO Usage
  1926. IF %@SUBSTR[%1,0,1] == ? GOTO Usage
  1927.  
  1928. :: Get rid of the cursor, set values, and if no drive was specified,
  1929. :: use the default drive instead.
  1930. SETDOS /s0:0
  1931. Set c=4
  1932. Set drive=%1:
  1933. IF %1. == . SET drive=%_DISK:
  1934.  
  1935. :: If the selected drive is ready, work out how many blocks will be
  1936. :: needed (for the usage graph), and if not to go to the error message.
  1937. CLS
  1938. IFF %@READY[%drive] == 1 THEN (
  1939.     Set x=%@INT[%@EVAL[(%@DISKUSED[%drive,b]/%@DISKTOTAL[%drive,b])*61]]
  1940.     )
  1941. ELSE GOTO NotReady
  1942. ENDIFF
  1943.  
  1944. :: Draw the boxes and display the numerical stats.
  1945. DRAWBOX 1 30 3 63 1 whi on bla
  1946. DRAWBOX 3 3 7 63 1 whi on bla
  1947. DRAWBOX 1 3 9 63 2 whi on bla
  1948.  
  1949. SCRPUT 2 31 whi on bla SPACE.BTM - Mark Stiebel (c)1992
  1950. SCRPUT 2 6 whi on bla Statistics for drive %@UPPER[%drive]
  1951. SCRPUT 4 6 whi on bla Total space : %@DISKTOTAL[%drive,K] Kbytes
  1952. SCRPUT 5 6 whi on bla Used space  : %@DISKUSED[%drive,K] Kbytes
  1953. SCRPUT 6 6 whi on bla Free space  : %@DISKFREE[%drive,K] Kbytes
  1954. SCRPUT 4 34 whi on bla - %@DISKTOTAL[%drive,M] Mbytes
  1955. SCRPUT 5 34 whi on bla - %@DISKUSED[%drive,M] Mbytes
  1956. SCRPUT 6 34 whi on bla - %@DISKFREE[%drive,M] Mbytes
  1957. SCRPUT 4 48 whi on bla - 100`%`
  1958. SCRPUT 5 48 whi on bla -
  1959. %@INT[%@EVAL[(%@DISKUSED[%drive,b]/%@DISKTOTAL[%drive,b])*101]]`%`
  1960. SCRPUT 6 48 whi on bla -
  1961. %@INT[%@EVAL[(%@DISKFREE[%drive,b]/%@DISKTOTAL[%drive,b])*101]]`%`
  1962.  
  1963. :: Draw the usage bar. If anyone can find a quicker way (preferably
  1964. :: instantaeous) way to do this, can you please give me a buzz.
  1965. :Bar
  1966. IFF %x gt %c THEN SCRPUT 8 %c bri whi on bla ▒
  1967. ELSE IFF %x le %c THEN SCRPUT 8 %c bri whi on bla ·
  1968. ENDIFF
  1969. Set c=%@EVAL[%c+1]
  1970. IF %c lt 63 GOTO Bar
  1971. Goto End
  1972.  
  1973. :: The 'Drive Not Ready' error message
  1974. :NotReady
  1975. echo.
  1976. echo ERROR: Drive %drive Is not ready. Please insert a disk or make sure
  1977. echo        that the hard drive is operational.
  1978. echo.
  1979. SETDOS /s10:100
  1980. QUIT
  1981.  
  1982. :: The 'Help' message
  1983. :Usage
  1984. TEXT
  1985.  
  1986. USAGE:
  1987.       SPACE <drive>
  1988.  
  1989.       Where <drive> is the drive letter. This may be specified in
  1990.       upper or lower case.
  1991.       If no drive is specified, SPACE.BTM will use the current drive.
  1992.  
  1993. ENDTEXT
  1994. QUIT
  1995.  
  1996. :: unset all the environment variables used, restore the cursor,
  1997. :: and put it just below the output from the .BTM file.
  1998. :End
  1999. SCREEN 12 0
  2000. UNSET c x drive
  2001. SETDOS /s10:100
  2002. ----[ CUT HERE ]------------------------------
  2003.  
  2004.  -:{ M-><-S }:-
  2005.  
  2006. ... Thinly sliced cabbage   -- Cole's Law
  2007. --- FMail 0.92
  2008.  * Origin:  The Gate - Melbourne, Australia - +61-3-879-9082  (3:633/159.0)
  2009.  
  2010. ------------------------------------------------------------------------
  2011.  
  2012. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2013.  
  2014.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/06/1992
  2015.   To: FURLAN PRIMUS                   Num: 86         Date: 11/03/1992
  2016. From: MAYNARD HOGG                     Re:            Time:  1:45 pm
  2017. Subj: Text | Set                     Prvt: N          Read: N
  2018.  
  2019. On 10-29-92, you wrote TERRY HORTON re: 4DOS menus
  2020.  
  2021. FP>actually, you don't even need the ASCII file:  <g>
  2022.   >text | set choice=%@substr[%@select[con,5,16,20,30, choose one ],0]
  2023.   >:
  2024.   >endtext
  2025.   >:
  2026.   >got it from right here, in the 4DOS echo, i don't recall who
  2027.   >suggested it...
  2028.  
  2029. Whoever it was deserves a medal! This arcane trick belongs in the
  2030. manual as the archetypical example of how to use %@SELECT[].
  2031.  
  2032. <Later> I can't get this to work. %@line[] works, but not %@select[].
  2033. The latter waits for input from the keyboard and, when I hit the ^Z CR
  2034. sequence, displays the lines that I have typed and then hangs. Back to
  2035. the drawing board...
  2036.  
  2037.  -- SPEED 1.10 #1086: 
  2038. --- GEcho 1.00/beta+
  2039.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2040.  
  2041. ------------------------------------------------------------------------
  2042.  
  2043. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2044.  
  2045.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/07/1992
  2046.   To: ARAN SPENCE                     Num: 129        Date: 11/04/1992
  2047. From: FRANK STOERMER                   Re:            Time:  8:27 pm
  2048. Subj: Descriptions                   Prvt: N          Read: N
  2049.  
  2050.  > Has anyone come up with at BTM which will describe only the files
  2051.  > that don't have descriptions?  It's kind of annoying when you have
  2052.  > to fan through 200+ files just to describe 30 or so.  Yes, I know
  2053.  > they can be done one at a time or in multiples on the command line;
  2054.  > but wouldn't it be much simpler to type DESCRIBE *.* and only comment
  2055.  > the files without existing descriptions?
  2056.  
  2057.  alias describe for %a in (*.*) do if "%@descript[%a]" eq "" describe %a
  2058.  
  2059.   FrAnK
  2060.  
  2061. ---
  2062.  * Origin: Fatal application error - please replace user (2:2402/313.2)
  2063.  
  2064. ------------------------------------------------------------------------
  2065.  
  2066. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2067.  
  2068.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/07/1992
  2069.   To: ALL                             Num: 140        Date: 11/04/1992
  2070. From: DAYTON LIVINGSTON                Re:            Time: 11:04 am
  2071. Subj: It CAN be done!                Prvt: N          Read: N
  2072.  
  2073. TO WHOM IT MAY CONCERN:
  2074.  
  2075. (Sorry, I forgot the poster's name)
  2076.  
  2077. A few days back, there was a message from someone who wanted to
  2078. know how to make the %@SELECT function scroll down a number of
  2079. times and select an item all by hitting a function key.  He was
  2080. designing some sort of menu system for games.  I think it looked
  2081. something like:
  2082.  
  2083.           F1 Majong
  2084.           F2 Baccarat
  2085.           F3 Backgammon
  2086.           F4 Shoot the Moon
  2087.           F5 Pareesi Squares
  2088.  
  2089. I wrote back that it could not be done (and I saw that that was
  2090. the general consensus from others as well), and wrote a BTM that
  2091. would do something similar.  Since then, I've read some other
  2092. messages that got the ol' brain-thingie working on the problem,
  2093. and I finally figured out a solution.  Using ANSI key re-
  2094. definitions will allow one to redefine keys which %@SELECT will
  2095. accept.  Of course, this will depend on the ANSI driver used. I'm
  2096. using DGANSI (with DVANSI to get it into my other DV windows),
  2097. and the following works fine on my machine.  I will NOT say if it
  2098. will work on others!!!
  2099.  
  2100. Thanks to Terry Horton who mentioned the ANSI redefinition in use
  2101. with SELECT (not %@SELECT - it was a different topic, but it gave
  2102. me the idea), and to Furlan Primus for showing me how to use the
  2103. TEXT | %@SELECT redirection - nice!
  2104.  
  2105. Also, if anyone remembers who wrote the initial question on how
  2106. to do it, please let them know about this possible solution.
  2107. Thanks.
  2108.  
  2109. ZELECT.BTM
  2110. _______________________O/_____CUT HERE_____O/______________________
  2111.                        O\                  O\
  2112. @ECHO OFF
  2113. SETLOCAL
  2114. ECHO %@CHAR[27][0;59;0;71;0;80;13p
  2115.      ^REM F1=Down Enter
  2116. ECHO %@CHAR[27][0;60;0;71;0;80;0;80;13p
  2117.      ^REM F2=Down Down Enter
  2118. ECHO %@CHAR[27][0;61;0;71;0;80;0;80;0;80;13p
  2119.      ^REM F3=Down Down Down Enter
  2120. ECHO %@CHAR[27][0;62;0;71;0;80;0;80;0;80;0;80;13p
  2121.      ^REM F4=Down Down Down Down Enter
  2122. ECHO %@CHAR[27][0;63;0;71;0;80;0;80;0;80;0;80;0;80;13p
  2123.      ^REM F5=Down Down Down Down Down Enter
  2124. TEXT | SET CHOICE=%@SUBSTR[%@SELECT[CON,5,16,20,29, CHOOSE ONE ],0]
  2125.  -- EXIT --
  2126.  You hit F1
  2127.  You hit F2
  2128.  You hit F3
  2129.  You hit F4
  2130.  You hit F5
  2131. ENDTEXT
  2132. ECHO %choice
  2133. ECHO %@CHAR[27][0;59;0;59p ^REM Reset F1 to F1
  2134. ECHO %@CHAR[27][0;60;0;60p ^REM Reset F2 to F2
  2135. ECHO %@CHAR[27][0;61;0;61p ^REM Reset F3 to F3
  2136. ECHO %@CHAR[27][0;62;0;62p ^REM Reset F4 to F4
  2137. ECHO %@CHAR[27][0;63;0;62p ^REM Reset F5 to F5
  2138. QUIT
  2139. _______________________O/_____CUT HERE_____O/______________________
  2140.                        O\                  O\
  2141. Of course, the %@CHAR[27] can be replaced with an actual escape
  2142. character (ASCII 27) to speed things along.  This is just an
  2143. example of HOW to do it to go over the echo.
  2144.  
  2145. - Dayton
  2146.  
  2147.  * OLX 994 * Muhamed Ali's greatest hits  -  Knockout Records
  2148.  
  2149. --- Maximus 2.00
  2150.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  2151.  
  2152. ------------------------------------------------------------------------
  2153.  
  2154. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2155.  
  2156.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/08/1992
  2157.   To: FURLAN PRIMUS                   Num: 76         Date: 11/05/1992
  2158. From: MAYNARD HOGG                     Re:            Time: 10:40 am
  2159. Subj: Descriptions                   Prvt: N          Read: N
  2160.  
  2161. On 11-02-92, you wrote JOHN THOMPSON
  2162.  
  2163. JT>Can't you just make an unhidden copy of DESCRIPT.ION and call it
  2164.   >FILES.BBS?
  2165.  
  2166. FP>no, the formats are a bit different.
  2167.  
  2168. Is it text? If so, DESCRIPT.ION files are incredibly easy to hack with
  2169. AWK.
  2170.  
  2171. #AWK program to format DESCRIPT.ION file to fixed-width format
  2172. #Usage:
  2173. # attrib -h %targetdir\descript.ion
  2174. # awk -f this.awk %targetdir\descript.ion >%targetdir\descript.lst
  2175. #from:
  2176. # mirror.fil MIRROR FAT saver
  2177. # treeinfo.ncd Norton Change Directory database
  2178. # l&f lost+found
  2179. # trash trash bucket
  2180. # $1    $2    $3...
  2181. #to:
  2182. # mirror.fil   MIRROR FAT saver
  2183. # treeinfo.ncd Norton Change Directory database
  2184. # l&f          lost+found
  2185. # trash        trash bucket
  2186. {
  2187.   $1 = sprintf("%-12s",$1)
  2188.   print
  2189. }
  2190.  
  2191. The same goes for DIR/KMA-D listings. Unlike that other shell, 4DOS
  2192. keeps the extension and the filename together so that you can refer to
  2193. them together as $1 ("first word"). None of that nonsense of worrying
  2194. about whether $2 is the extension or the size! (Alas, you have to
  2195. watch out for 0:00 time stamps since they are suppressed.)
  2196.  
  2197.  -- SPEED 1.10 #1086: 
  2198. --- GEcho 1.00/beta+
  2199.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2200.  
  2201. ------------------------------------------------------------------------
  2202.  
  2203. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2204.  
  2205.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/08/1992
  2206.   To: PHIL BEEBLE                     Num: 60         Date: 11/05/1992
  2207. From: MORRIS TURPIN                    Re:            Time:  9:00 pm
  2208. Subj: help                           Prvt: N          Read: N
  2209.  
  2210.  In a message dated Oct 29 at 16:27, Phil Beeble of 1:105/78
  2211.  wrote to All:
  2212.  
  2213.  PB> How can I pause the Batch file to allow the Keystack to work 
  2214.  PB> completely, but still have the process go on automatically?
  2215.  
  2216.  PB> When a PAUSE is put into the Batch file, It has no effect, Since 
  2217.  PB> the Keystack
  2218.  PB> has not had time to run. Putting in a /w at the end of it does not 
  2219.  PB> help either.. It pauses at the end of the Command, but does not run 
  2220.  PB> the command.
  2221.  
  2222. No problem.  From the KEYSTACK help screen:
  2223.  
  2224.   SYNTAX        (Internal 4DOS)
  2225.  
  2226.   KEYSTACK ["abc"] [nn] [key] [@nn] [!] [/Wn]
  2227.  
  2228.   The /W option allows you to wait for the specified number of clock ticks
  2229.   (each tick = 1/18th second) before passing the following characters.
  2230.  
  2231. As you can see, placing the "/w" at the end of the line will not have any
  2232. effect, since no characters follow the "wait" switch.
  2233.  
  2234. To illustrate the usage of the "/w" switch, here is the alias that I use to
  2235. load GEOCLOCK:
  2236.  
  2237. GEO=kstack^keystack /w6 27 /w6 "9"^pushd c:\geo^
  2238. geoclk showsvga map4001^popd^cls
  2239.  
  2240. KEYSTACK will wait for 6 timer ticks (1/3 sec) then send the escape
  2241. character (ascii 27), wait an additional 6 timer ticks then send numeral
  2242. "9".
  2243.  
  2244. Works like a charm!
  2245.  
  2246.  
  2247. --- msged 2.07
  2248.  * Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
  2249.  
  2250. ------------------------------------------------------------------------
  2251.  
  2252. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2253.  
  2254.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/08/1992
  2255.   To: SAUL LEVY                       Num: 69         Date: 11/05/1992
  2256. From: TERRY PINTO                      Re:            Time:  6:59 am
  2257. Subj: system.btm                     Prvt: N          Read: N
  2258.  
  2259.  SL>> echo `Drive     Total         Used     %        Free     %`
  2260.  SL>> echo `=======================================================`
  2261.  SL>> for %a in (C: D: E: F: G: H:) do gosub getnums
  2262.  SL>> echo `=======================================================`
  2263.  SD> [...]
  2264.  
  2265. Saul,
  2266.      I saw this posted and thought you might like to see something I put
  2267. together that does the same thing but a little more... SYSTEM.BTM reports
  2268. vital system statistics and lists the TOTAL SPACE - SPACE USED - FREE SPACE
  2269. for drives that are currently attached to the system (not including floppy
  2270. drives - YET!) and the percentage of space used in an automatically sized
  2271. window. The routing uses two system variables, SYSOP and SYSTEM that are the
  2272. SYSOP name and the SYSTEM name. These are for display purposes only and could
  2273. just as easily be hard coded in the .BTM file but this made it a bit more
  2274. portable... enjoy!
  2275.  
  2276. -------------- > cut here <
  2277. ---------------------------------------------------
  2278. @echo off
  2279. cls
  2280. scrput 1 0 bright yellow on black 4DOS System Information - v1.00
  2281. echo  
  2282. iff %_NDP=0 then
  2283.    set copr=None
  2284. else
  2285.    set copr=80%_NDP
  2286. endiff
  2287. if %_dv=0 .and. %_win=0 set multi=None
  2288. if %_dv=1 set multi=DesqView
  2289. if %_win=1 set multi=Win 2.0
  2290. if %_win=2 set multi=Win 3.x Enh
  2291. if %_win=3 set multi=Win 3.x Real or Stan
  2292. if %_win=20 set multi=OS2 DOS Box
  2293.  
  2294. :parse
  2295. if %#=0 goto :full_screen
  2296. if %1=/cpu scrput 3 1 bright green on black Processor: 80%_cpu
  2297. if %1=/fpp scrput 3 1 bright green on black Co-Processor: %copr
  2298. iff %1=/ver then
  2299.    iff %2=/r then
  2300.       scrput 3 1 bright green on black Operating System:
  2301.       ver /r
  2302.    else
  2303.       scrput 3 1 bright green on black Operating System: MSDOS %_dosver
  2304.       scrput 4 1 bright green on black                    4DOS %_4ver
  2305.    endiff
  2306. endiff
  2307. if %1=/com scrput 3 1 bright green on black COMSPEC: %comspec
  2308. if %1=/vid scrput 3 1 bright green on black Video:
  2309. %@upper[%_video]:%@upper[%_monitor]
  2310. if %1=/mtk scrput 3 1 bright green on black Multi-Tasker: %multi
  2311. (%@eval[%_shell-1])
  2312. iff %1=/mem then
  2313.    scrput 3 1 bright green on black Memory: %@dosmem[b] bytes
  2314.    iff %2=/c then
  2315.       scrput 3 1 bright green on black    EMS: %@ems[b] bytes
  2316.       scrput 3 1 bright green on black    XMS: %@xms[b] bytes
  2317.    endiff
  2318. endiff
  2319. iff %1=/fre then
  2320.    for %a in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) if %a LE
  2321. %_lastdisk fre %a
  2322. endiff
  2323. if %1=/ems scrput 3 1 bright green on black EMS: %@ems[b] bytes
  2324. if %1=/xms scrput 3 1 bright green on black XMS: %@xms[b] bytes
  2325. if %1=/help goto :help
  2326. goto :exit
  2327.  
  2328. :help
  2329. scrput 3 1 bright cyan on black Syntax SYSTEM [/option]
  2330. scrput 5 19 bright red on black /cpu - Report CPU type
  2331. scrput 6 19 bright red on black /fpp - Report Floating Point Processor type
  2332. scrput 7 19 bright red on black /ver - Report DOS/4DOS version information
  2333. scrput 8 19 bright red on black /com - Report COMSPEC in use
  2334. scrput 9 19 bright red on black /vid - Report Video Mode and Monitor type
  2335. scrput 10 19 bright red on black /mtk - Report Multi-Tasker in use
  2336. scrput 11 19 bright red on black /mem - Report Conventional memory
  2337. scrput 12 19 bright red on black /ems - Report EMS Memory
  2338. scrput 13 19 bright red on black /xms - Report XMS Memory
  2339. scrput 14 19 bright red on black /fre - Report Disk Statistics
  2340. goto :exit
  2341.  
  2342. :full_screen
  2343. set brow=%@eval[%@ascii[%_lastdisk]-%@ascii[C]+9]
  2344. drawbox 2 0 17 31 2 bright white on red fill red
  2345. drawhline 5 0 31 3 bright white on red
  2346. drawbox 2 35 %brow 75 2 bright white on blue fill blue
  2347. drawhline 5 35 40 2 bright white on blue
  2348. rem beep 440 4 600 2 1040 6
  2349. scrput  3 3 bright yellow on red %system
  2350. scrput  4 3 bright yellow on red %sysop
  2351. scrput 3 37 bright yellow on blue Disk Statistics
  2352. scrput 4 37 white on blue Drive   Total     Used      Free
  2353. scrput  6  3        white on red Date    :
  2354. scrput  6 13 bright  cyan on red %_DATE
  2355. scrput  7  3        white on red Time    :
  2356. scrput  7 13 bright  cyan on red %_TIME
  2357. scrput  8  3        white on red CPU     :
  2358. scrput  8 13 bright  cyan on red 80%_CPU
  2359. scrput  9  3        white on red MathCoP :
  2360. scrput  9 13 bright  cyan on red %COPR
  2361. scrput 10  3        white on red DOS/4DOS:
  2362. scrput 10 13 bright  cyan on red %_DOSVER/%_4VER
  2363. scrput 11  3        white on red Comspec :
  2364. scrput 11 13 bright  cyan on red %COMSPEC
  2365. scrput 12  3        white on red Video   :
  2366. scrput 12 13 bright  cyan on red %@UPPER[%_VIDEO]:%@UPPER[%_MONITOR]
  2367. scrput 13  3        white on red M-Task  :
  2368. scrput 13 13 bright  cyan on red %MULTI (%@EVAL[%_SHELL])
  2369. scrput 14  3        white on red Memory  :
  2370. scrput 14 13 bright  cyan on red %@DOSMEM[b]
  2371. scrput 15  3        white on red EMS     :
  2372. scrput 15 13 bright  cyan on red %@EMS[b]
  2373. scrput 16  3        white on red XMS     :
  2374. scrput 16 13 bright  cyan on red %@XMS[b]
  2375. screen 18  0
  2376. set x=6
  2377. set d=%@ascii[C]
  2378. :DLOOP
  2379. set total=0
  2380. set totused=0
  2381. set totfree=0
  2382. :DLOOP1
  2383.  
  2384. iff %@char[%d] LE %_lastdisk then
  2385.  
  2386.  if %@eval[%@disktotal[%@char[%d]:,m]] LT 1000 .and.
  2387. %@eval[%@disktotal[%@char[%d]:,m]] GE 100 scrput %x 39 bright yellow on blue
  2388. %@char[%d]:
  2389.  if %@eval[%@disktotal[%@char[%d]:,m]] LT 1000 .and.
  2390. %@eval[%@disktotal[%@char[%d]:,m]] GE 100 scrput %x 44 bright cyan on blue
  2391. %@disktotal[%@char[%d]:,m] Mb
  2392.  if %@eval[%@diskused[%@char[%d]:,m]]  LT 1000 .and.
  2393. %@eval[%@diskused[%@char[%d]:,m]]  GE 100 scrput %x 53 bright cyan on blue
  2394. %@diskused[%@char[%d]:,m] Mb
  2395.  if %@eval[%@diskfree[%@char[%d]:,m]]  LT 1000 .and.
  2396. %@eval[%@diskfree[%@char[%d]:,m]]  GE 100 scrput %x 63 bright cyan on blue
  2397. %@diskfree[%@char[%d]:,m] Mb
  2398.  
  2399.  if %@eval[%@disktotal[%@char[%d]:,m]] LT  100 .and.
  2400. %@eval[%@disktotal[%@char[%d]:,m]] GE  10 scrput %x 39 bright yellow on blue
  2401. %@char[%d]:
  2402.  if %@eval[%@disktotal[%@char[%d]:,m]] LT  100 .and.
  2403. %@eval[%@disktotal[%@char[%d]:,m]] GE  10 scrput %x 45 bright cyan on blue
  2404.  
  2405.  
  2406.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  2407.                         >> Continued in next message <<
  2408.  
  2409. ------------------------------------------------------------------------
  2410.  
  2411. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2412.  
  2413.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/08/1992
  2414.   To: SAUL LEVY                       Num: 70         Date: 11/05/1992
  2415. From: TERRY PINTO                      Re:            Time:  6:59 am
  2416. Subj: system.btm                     Prvt: N          Read: N
  2417.  
  2418.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  2419.                      >> Continued from previous message <<
  2420.  
  2421.  
  2422. %@disktotal[%@char[%d]:,m] Mb
  2423.  if %@eval[%@diskused[%@char[%d]:,m]]  LT  100 .and.
  2424. %@eval[%@diskused[%@char[%d]:,m]]  GE  10 scrput %x 54 bright cyan on blue
  2425. %@diskused[%@char[%d]:,m] Mb
  2426.  if %@eval[%@diskfree[%@char[%d]:,m]]  LT  100 .and.
  2427. %@eval[%@diskfree[%@char[%d]:,m]]  GE  10 scrput %x 64 bright cyan on blue
  2428. %@diskfree[%@char[%d]:,m] Mb
  2429.  
  2430.  if %@eval[%@disktotal[%@char[%d]:,m]] LT   10 .and.
  2431. %@eval[%@disktotal[%@char[%d]:,m]] GE   0 scrput %x 39 bright yellow on blue
  2432. %@char[%d]:
  2433.  if %@eval[%@disktotal[%@char[%d]:,m]] LT   10 .and.
  2434. %@eval[%@disktotal[%@char[%d]:,m]] GE   0 scrput %x 46 bright cyan on blue
  2435. %@disktotal[%@char[%d]:,m] Mb
  2436.  if %@eval[%@diskused[%@char[%d]:,m]]  LT   10 .and.
  2437. %@eval[%@diskused[%@char[%d]:,m]]  GE   0 scrput %x 55 bright cyan on blue
  2438. %@diskused[%@char[%d]:,m] Mb
  2439.  if %@eval[%@diskfree[%@char[%d]:,m]]  LT   10 .and.
  2440. %@eval[%@diskfree[%@char[%d]:,m]]  GE   0 scrput %x 65 bright cyan on blue
  2441. %@diskfree[%@char[%d]:,m] Mb
  2442.  
  2443.  set
  2444. per=%@int[%@eval[%@diskused[%@char[%d]:,m]/%@disktotal[%@char[%d]:,m]*100] ]
  2445.  if %per == 100 scrput %x 70 bright white on blue %@eval[%per]%%%%
  2446.  if %per LE  99 .and. %per GT 90 scrput %x 71 bright blink red on blue
  2447. %@eval[%per]%%%%
  2448.  if %per LE  90 .and. %per GT 70 scrput %x 71 bright red on blue
  2449. %@eval[%per]%%%%
  2450.  if %per LE  70 .and. %per GT 50 scrput %x 71 bright yellow on blue
  2451. %@eval[%per]%%%%
  2452.  if %per LE  50 .and. %per GT 30 scrput %x 71 bright green on blue
  2453. %@eval[%per]%%%%
  2454.  if %per LE  30 .and. %per GE  0 scrput %x 72 bright white on blue
  2455. %@eval[%per]%%%%
  2456.  
  2457.  set total=%@eval[%@disktotal[%@char[%d]:,m]+%total]
  2458.  set totused=%@eval[%@diskused[%@char[%d]:,m]+%totused]
  2459.  set totfree=%@eval[%@diskfree[%@char[%d]:,m]+%totfree]
  2460.  
  2461.  set x=%@eval[%x+1]
  2462.  set d=%@eval[%d+1]
  2463.  goto :DLOOP1
  2464. endiff
  2465.  drawhline %x 37 37 1 bright white on blue
  2466.  set x=%@eval[%x+1]
  2467.  scrput %x 37 bright yellow on blue Total:
  2468.  scrput %x 44 bright green on blue %total Mb
  2469.  scrput %x 53 bright green on blue %totused Mb
  2470.  scrput %x 63 bright green on blue %totfree Mb
  2471.  
  2472.  set totper=%@int[%@eval[%totused/%total*100]]
  2473.  if %totper == 100 scrput %x 70 bright blink white on blue
  2474. %@eval[%totper]%%%%
  2475.  if %totper LE  99 .and. %totper GT 90 scrput %x 71 bright blink red on blue
  2476. %@eval[%totper]%%%%
  2477.  if %totper LE  90 .and. %totper GT 70 scrput %x 71 bright red on blue
  2478. %@eval[%totper]%%%%
  2479.  if %totper LE  70 .and. %totper GT 50 scrput %x 71 bright yellow on blue
  2480. %@eval[%totper]%%%%
  2481.  if %totper LE  50 .and. %totper GT 30 scrput %x 71 bright green on blue
  2482. %@eval[%totper]%%%%
  2483.  if %totper LE  30 .and. %totper GE  0 scrput %x 72 bright white on blue
  2484. %@eval[%totper]%%%%
  2485. :EXIT
  2486. -----------------------------------------------------------------------------
  2487. Terry
  2488.  
  2489. --- GoldEd 2.40.P0720+/D'Bridge
  2490.  * Origin: CyBorg Systems BBS (1:105/340)
  2491.  
  2492. ------------------------------------------------------------------------
  2493.  
  2494. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2495.  
  2496.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/08/1992
  2497.   To: DENNIS MATNEY                   Num: 61         Date: 11/02/1992
  2498. From: BILL-STEVEN KERR                 Re:            Time:  7:46 pm
  2499. Subj: Touching file in 4dos          Prvt: N          Read: N
  2500.  
  2501.  >  JB> The alias for a msdos version of touch is... (get ready to spew)
  2502.  
  2503.  >  JB> alias touch for x in (%%&) do command /c copy %%x+,,
  2504.                         ^
  2505.  
  2506.  > Don't know if there is a typo or what-but this does
  2507.  > not work for me...
  2508.  
  2509.  Change the x to %%x.
  2510.  
  2511. Steven.
  2512. Fidonet : 2:259/27.5
  2513. Usenet  : bill-steven.kerr@almac.co.uk
  2514.  
  2515. --- FMail 0.90
  2516.  * Origin: Bill-Steven Kerr, Mid Calder, SCOTLAND (2:259/27.5)
  2517.  
  2518. ------------------------------------------------------------------------
  2519.  
  2520. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2521.  
  2522.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/09/1992
  2523.   To: BILL TOWSLEY                    Num: 80         Date: 11/06/1992
  2524. From: MAYNARD HOGG                     Re:            Time:  4:31 pm
  2525. Subj: Descriptions                   Prvt: N          Read: N
  2526.  
  2527. On 11-03-92, BILL TOWSLEY wrote FURLAN PRIMUS re: Descriptions
  2528.  
  2529. BT>Actually, although it's not pretty to look at, the descript.ion
  2530.   >file *WILL* work when copied to files.bbs (descriptions may get
  2531.   >truncated however).
  2532.   >
  2533.   >The key to all of this, is that it would make file movement
  2534.   >*SIMPLER* on a BBS system, if a person could call the description
  2535.   >file files.bbs, and leave it unhidden. That way, any 4DOS file
  2536.   >manipulation commands would automatically update the BBS files
  2537.   >listings. As it is now, if you use a BBS file manager, you loose
  2538.   >your DIR descriptions, and if you use COPY/MOVE, you loose your
  2539.   >files.bbs descriptions.
  2540.  
  2541. Simple or the type of simple-minded approach that eventually causes
  2542. more work than it saves? Let's try logic and work it through. Imagine
  2543. this scenario: Someone is desperate enough to simply take a hex editor
  2544. to 4DOS.COM, changing DESCRIPT.ION to FILES.BBS. That person will
  2545. still have to build the appropriate ATTRIB -H FILES.BBS lines into the
  2546. batch files for BBS "events" and 4DOS-style maintenance. Now, if that
  2547. person wanted to use something a bit more sophisticated that
  2548. DESCRIBE--FDU or 4EDIT, for example--those programs are going to look
  2549. for DESCRIPT.ION. Solution: Yet more patching. (Simple enough for
  2550. 4EDIT.EXE, but my version of FDU.COM presents problems.) Sounds like a
  2551. lot of unnecessary work to me.
  2552.  
  2553. The preceding paragraph totally ignored the issue of file format.
  2554. What's so bad about having separate files? (Assuming, of course,
  2555. infinite disk space which nobody has. <g>) The trick is to always use
  2556. batch files that make sure that keep the two in sync.
  2557.  
  2558. The answer? MAKE, of course. If you've got the necessary conversion
  2559. tools--I'll use the names F2D and D2F--a 7-line makefile should do the
  2560. trick.
  2561.  
  2562. files.bbs: descript.ion
  2563.         d2f descript.ion files.bbs
  2564.         touch -f descript.ion files.bbs
  2565.  
  2566. descript.ion: files.bbs
  2567.         f2d files.bbs descript.ion
  2568.         touch -f files.bbs descript.ion
  2569.  
  2570. What does this mean? Note that there are two types of lines. #1 and #5
  2571. are dependency rules; the indented ones, commands. #1 tells MAKE that
  2572. FILES.BBS depends on--i.e., is made from or must be newer
  2573. than--file(s) DESCRIPT.ION; #5, that target DESCRIPT.ION depends on
  2574. file(s) FILES.BBS.
  2575.  
  2576. If the target does not exist or predates any files on the list, MAKE
  2577. runs the commands on subsequent indented lines to "make" (or
  2578. "remake"--i.e. update) the target.
  2579.  
  2580. The great thing about MAKE is that, once you've written the makefile,
  2581. it AUTOMATICALLY does ONLY what is necessary. Here, if you are a
  2582. "hands off" sysop--e.g., spend your time in the message section or
  2583. working--all MAKE will do is update DESCRIPT.ION and then only on the
  2584. days that FILES.BBS changes.
  2585.  
  2586. Note: The TOUCH commands in lines 3 and 7 are to force the time stamps
  2587. on the two files to agree so that MAKE doesn't go into a loop updating
  2588. FILES.BBS from DESCRIPT.ION, updating DESCRIPT.ION from the new
  2589. FILES.BBS, etc. ad infinitum. (If your TOUCH doesn't support the -f
  2590. "take stamp from file" option, use the regular "touch to current
  2591. system time" approach demonstrated in the batch file below.)
  2592.  
  2593. Sorry for the long commercials on MAKE, but it's the sort of tool that
  2594. 4DOS users should know about.
  2595.  
  2596. BTW, speaking of 4DOS, while you're looking around for a public domain
  2597. or shareware MAKE, note that you can always simulate simple makefiles
  2598. like the above with batch commands. (In some ways, this version is
  2599. better--no risk of an infinite loop, for example.)
  2600.  
  2601. IFF %@filedate[files.bbs] lt %@filedate[descript.ion] .or.
  2602.     %@filetime[files.bbs] lt %@filetime[descript.ion]
  2603. THEN d2f descript.ion files.bbs
  2604. ELSEIFF %@filedate[files.bbs] gt %@filedate[descript.ion] .or.
  2605.         %@filetime[files.bbs] gt %@filetime[descript.ion]
  2606. THEN f2d files.bbs descript.ion
  2607. ELSE (echo. Files in sync! Nothing to do.^quit)
  2608. touch files.bbs descript.ion
  2609.  
  2610.  -- SPEED 1.10 #1086: 
  2611. --- GEcho 1.00/beta+
  2612.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2613.  
  2614. ------------------------------------------------------------------------
  2615.  
  2616. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2617.  
  2618.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/09/1992
  2619.   To: YALL                            Num: 81         Date: 11/07/1992
  2620. From: MAYNARD HOGG                     Re:            Time:  1:40 am
  2621. Subj: Space.Btm                      Prvt: N          Read: N
  2622.  
  2623. It took some work, but I managed to speed up the loop for displaying
  2624. the fuel gauge bar by building strings for the two parts and then
  2625. displaying them with a single SCRPUT. But the result was so fast on my
  2626. slower machine, a 386/33, that I had to slow it down somewhat by
  2627. adding scale lines, tracking the percentage with an extra SCRPUT, and
  2628. pausing briefly with a BEEP. Even with the BEEP delay in the loop, the
  2629. file runs approximately twice as fast as my previous version.
  2630.  
  2631. First, the initial calculations.
  2632.  
  2633. set dt=%@disktotal[%drive,b]
  2634. set du=%@diskused[%drive,b]/%dt
  2635. Set x=%@EVAL[%du*60]
  2636. set du=%@EVAL[%du*100]
  2637. ::don't want to worry about special case of 100% just yet
  2638. :(too hard to program)
  2639. if %x ge 60 set x=59.99
  2640. if %du ge 100 set du=99.99
  2641. :
  2642. :
  2643. SCRPUT 5 48 %wob - %@int[%du]`%`
  2644. ::                 ^^^^^^^^^^Never greater than 99% here.
  2645. SCRPUT 6 48 %wob - %@INT[%@EVAL[(%@DISKFREE[%drive,b]/%dt)*100+0.5]]`%`
  2646.  
  2647. ::print scale first
  2648. set outc=%@char[250]
  2649. set outc=%outc%%outc%%outc%%outc%%outc%%@char[179]
  2650. :dots
  2651. set outc=%outc%%outc%
  2652. if %@len[%outc] lt 59 goto dots
  2653. set outc=%@substr[%outc,0,59]
  2654. SCRPUT 8 4 %wob %outc
  2655. ::screen 0 0 ^pause
  2656.  
  2657. set ptr=4
  2658. set c=%@int[%@eval[%du/10]]^if %c lt 1 goto bar20
  2659. ::    ^^^^^^^^^^^^^^^^^^^^^max = 9
  2660. ::now is the time to round off %du
  2661. set du=%@int[%@eval[%du+0.5]]
  2662. ::     ^^^^^^^^^^^^^^^^^^^^^^round up (even to 100%)
  2663.  
  2664. set outc=%@char[177]
  2665. ::six blocks for each 10% on scale
  2666. set outc=%outc%%outc%%outc%%outc%%outc%%@char[179]
  2667.  
  2668. ::print bar in 10% blocks
  2669. :bar10
  2670. ::pc is the current per cent for SCRPUT command below
  2671. set pc=%@eval[(10 - %c)*10]
  2672. ::print remainder
  2673. :bar15
  2674. scrput 5 50 %bwob% %pc`% `
  2675. SCRPUT 8 %ptr %bwob %outc
  2676. ::delay 2 ticks
  2677. beep 10 2
  2678.  
  2679. set ptr=%@eval[%ptr + %@len[%outc]]
  2680. set c=%@eval[%c - 1]
  2681. if %c gt 0 goto bar10
  2682. if %c eq 0 (
  2683.   set outc=%@substr[%outc,0,%@eval[%x %% 6]]
  2684. rem                         ^^^^^^^^^^^^^^^
  2685. rem                         yields 5 for 99.99% case
  2686.   set c=0^set pc=%du
  2687.   if /%outc/ != // goto bar15
  2688. )
  2689.  
  2690. :bar20
  2691. set outc=%@char[250]
  2692. set outc=%outc%%outc%%outc%%outc%%outc%
  2693. set c=%@eval[60-1-%x]^if %c lt 1 goto end
  2694.  
  2695. :bar30
  2696. set c=%@eval[%c - %@len[%outc]]
  2697. set outc=%outc%%outc%
  2698. if %c gt 1 goto bar30
  2699.  
  2700. set outc=%@substr[%outc,0,%@eval[60-1-%x]]
  2701.  
  2702. SCRPUT 8 %ptr %bwob %outc
  2703.  
  2704. Goto End
  2705.  
  2706. --- GEcho 1.00/beta+
  2707.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2708. yo Line 1 (6:730/9)
  2709. 
  2710. ------------------------------------------------------------------------
  2711.  
  2712. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2713.  
  2714.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/09/1992
  2715.   To: MARK STIEBEL                    Num: 77         Date: 11/06/1992
  2716. From: MAYNARD HOGG                     Re:            Time:  4:31 pm
  2717. Subj: Space.Btm             1/2      Prvt: N          Read: N
  2718.  
  2719. On 11-06-92, MAYNARD HOGG wrote MARK STIEBEL re: SPACE.BTM             1/2
  2720. MS>Hi all you fellow 4DOS dudes..
  2721.  
  2722. I'm no DUDE, turkey! <grin>
  2723.  
  2724. Some changes--improvements, I hope:
  2725.  
  2726. <>text>nul
  2727. <>Date: 10-31-92
  2728. <>From: MARK STIEBEL
  2729. <>Returns (via %?):
  2730. <>* the percentage in the middle line (indicated with an arrow)
  2731. <>* 255 if the disk is not ready
  2732. <>* 0 for the help mode
  2733. <>:
  2734.  
  2735. <>endtext
  2736.  
  2737. One of my recent discoveries. <grin>
  2738.  
  2739. MS>:: Get rid of the cursor, set values, and if no drive was specified,
  2740.   >:: use the default drive instead.
  2741.    setlocal
  2742.  
  2743. The SETLOCAL is so that you don't have to UNSET at the end.
  2744.  
  2745. MS>::SETDOS /s0:0
  2746.  
  2747. At this point, you should save the current cursor shape, but I've
  2748. forgotten how. <sigh> I've therefore disabled it so that others don't
  2749. get the same shock as I did when I ran your version--a totally
  2750. different cursor. It took me a while to figure how to change it back.
  2751.  
  2752. Things aren't so bad since the cursor stays in the upper left hand
  2753. corner. Of course, the faster the bar routine, the less time that the
  2754. user has to notice. On my 33-MHz machines, things happen pretty fast.
  2755.  
  2756. MS>Set c=4
  2757.   >Set drive=%1:
  2758.   >IF %1. == . SET drive=%_DISK:
  2759.    set wob=bri green on %_bg
  2760.    set bwob=bri red on %_bg
  2761.  
  2762. These variables serve two purposes: (1) They help short the longest
  2763. lines to within the 80-character limit for messages. (2) They provide
  2764. centralized control over the color scheme.
  2765.  
  2766. Note the use of %_BG to prevent dropouts inside the box.
  2767.  
  2768. MS>IFF %@READY[%drive] == 1 THEN (
  2769.   >    Set x=%@INT[%@EVAL[(%@DISKUSED[%drive,b]/%@DISKTOTAL[%drive,b])*61]]
  2770.   >    )
  2771.   >ELSE GOTO NotReady
  2772.   >ENDIFF
  2773.  
  2774. The following would be simpler:
  2775.  
  2776. IF %@READY[%drive] != 1 GOTO NotReady
  2777. set dt=%@disktotal[%drive,b]
  2778. set du=%@diskused[%drive,b]/%dt
  2779. Set x=%@INT[%@EVAL[%du*61]]
  2780. set du=%@INT[%@EVAL[%du*101]]
  2781.  
  2782. Note how I again use environment variables to shorten the longest
  2783. lines and, coincidentally, avoid unnecessary recalculations. (I didn't
  2784. bother with the megabyte and kilobyte versions since the lines are
  2785. short enough, and the values are only used once.)
  2786.  
  2787. At this point, DU is the disk usage in percent--i.e., the return code.
  2788.  
  2789.   >SCRPUT 4 48 whi on bla - 100`%`
  2790.    SCRPUT 5 48 %wob - %du`%`
  2791.    SCRPUT 6 48 %wob - %@INT[%@EVAL[(%@DISKFREE[%drive,b]/%dt)*101]]`%`
  2792.  
  2793. The "longest lines" that I referred to above.
  2794.  
  2795.   >:: Draw the usage bar.
  2796.    set outchar=%@char[177]
  2797.    :Bar
  2798.    if %x eq %c set outchar=%@char[250]
  2799.    SCRPUT 8 %c %bwob %outchar
  2800.  
  2801. Note how I used the %@char[] function to keep this 7-bit and then had
  2802. to rearrange the loop to minimize the number of calls.
  2803.  
  2804.   >::If anyone can find a quicker way (preferably
  2805.   >::instantaeous) way to do this, can you please give me a buzz.
  2806.  
  2807. Let me think about it. The trick is to either use variations on the
  2808. following scheme or build the string first--yet another environment
  2809. variable!--and then display it.
  2810.  
  2811. %@substr[%@char[177]%@char[177]...,0,%count]
  2812. %@substr[%@char[250]%@char[250]...,0,%@eval[63-%count]]
  2813.    [ Continued In Next Message... ]
  2814.  
  2815.                       
  2816. --- GEcho 1.00/beta+
  2817.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2818.  
  2819. ------------------------------------------------------------------------
  2820.  
  2821. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2822.  
  2823.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/09/1992
  2824.   To: MARK STIEBEL                    Num: 78         Date: 11/06/1992
  2825. From: MAYNARD HOGG                     Re:            Time:  4:31 pm
  2826. Subj: Space.Btm             2/2      Prvt: N          Read: N
  2827.  
  2828.    [ ...Continued From Previous Message ]
  2829.  
  2830.   >:: The 'Drive Not Ready' error message
  2831.   >:NotReady
  2832.   >:
  2833.   >::SETDOS /s10:100
  2834.   >::QUIT
  2835.    set du=255
  2836.    goto end
  2837.  
  2838. Unlike BAT files--the only kind offered by that other shell--BTM files
  2839. do not suffer much of a performance hit with GOTOs. Since the file has
  2840. to clean up after itself, it's best to keep the number of QUITs to a
  2841. minimum.
  2842.  
  2843. MS>:: The 'Help' message
  2844.   >:
  2845.   >QUIT 0
  2846.  
  2847. This QUIT, however, is safe since the only path here skips the first
  2848. SETDOS.
  2849.  
  2850. MS>:End
  2851.   >::UNSET c x drive
  2852.  
  2853. As mentioned above, SETLOCAL relieves you of the responsibility of
  2854. keeping track of which variables to UNSET.
  2855.  
  2856. MS>::SETDOS /s10:100
  2857.  
  2858. As mentioned above, I've disabled the SETDOS/S commands in the
  2859. interest of portability.
  2860.  
  2861.   >***EOF***
  2862.    quit %du
  2863.  
  2864. Return the disk utilization percentage--for use in activating cleanup
  2865. routines, for example.
  2866.                       
  2867. --- GEcho 1.00/beta+
  2868.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2869.  
  2870. ------------------------------------------------------------------------
  2871.  
  2872. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2873.  
  2874.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/11/1992
  2875.   To: YOUSUF KHAN                     Num: 55         Date: 11/07/1992
  2876. From: MAYNARD HOGG                     Re:            Time:  7:57 am
  2877. Subj: Daylight Savings               Prvt: N          Read: N
  2878.  
  2879. MH>Such loops are not necessary. Once you know what day the last day
  2880.   >of October is, you can CALCULATE the date of the last Sunday.
  2881.  
  2882. YK>True, but that would involve a bunch of "IFF ... THEN ... ELSE[IFF]
  2883.   >... ENDIFF" statements, this one does it only FOR statements.
  2884.  
  2885. Huh? When I said calculate, I meant a single-line calculation of the
  2886. form. (Code for the function DOW have already appeared in this echo.)
  2887.  
  2888. set sunday=31-%@dow[10-31-%substr[%_date,6,2]]
  2889.  
  2890. If the 31st is a Monday (i.e. day 1 of the week), the preceding Sunday
  2891. is the 30th. Surprise!
  2892.  
  2893. It's called arithmetic. I learned in elementary school. Of course,
  2894. that was back in the Dark Ages before "New Math". <g>
  2895.  
  2896.  -- SPEED 1.10 #1086: 
  2897. --- GEcho 1.00/beta+
  2898.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2899.  
  2900. ------------------------------------------------------------------------
  2901.  
  2902. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2903.  
  2904.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/11/1992
  2905.   To: HERBERT BOUKNIGHT               Num: 59         Date: 11/07/1992
  2906. From: RUPA SCHOMAKER                   Re:            Time: 10:19 pm
  2907. Subj: Neat Idea                      Prvt: N          Read: N
  2908.  
  2909. Howdy Herbert:
  2910.  
  2911. In a msg dated <06 Nov 92>, Herbert Bouknight writes to Mike Dunnagan:
  2912.  
  2913.  HB> By the way, if Qui is reading this, the prompt is great, but I've got
  2914. one
  2915.  HB> suggestion.  Isn't it possible to have the prompt show the free space of
  2916.  HB> the drive you are present on instead of only the drive you assign in the
  2917.  HB> prompt string??  For ex, if you are on C:, then show free space on C:,
  2918. but
  2919.  HB> if you change to D:, show that free space.  Anyway, this is still
  2920.  HB> excellent work ;).
  2921.  
  2922. Try this prompt:
  2923.  
  2924. PROMPT=$e[1;1H$e[44m$e[K   Time: $t$h$h$h  |  Date: %%_DATE  |  %%@dosmem[K]K
  2925. Free  |  %%@diskfree[%%_disk,K]K Free  |  Shell
  2926. [$z]$e[%%_ROWS;1H$e[0m$e[0;32m$l$e[0;31m$p$e[0;32m$g$e[0;36m$e[K
  2927.  
  2928. The "|" will need to be escaped or converted to high ascii (it is the
  2929. vertical bar on my system).  And yes, it shows free diskspace for the current
  2930. drive.  I could probably even put logic in there for not checking free space
  2931. of a floppy drive, but I didn't bother.
  2932.  
  2933. Anyway, tell me what you think.
  2934.  
  2935.     -=(Rupa)=-   [Entered on <07 Nov 92> at <22:13> in Houston Texas]
  2936.  
  2937. --- FreeMail/GoldED 2.40.P0720+
  2938.  * Origin: Funny ... I don't recall asking for your opinion.... (1:106/1024)
  2939.  
  2940. ------------------------------------------------------------------------
  2941.  
  2942. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  2943.  
  2944.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/11/1992
  2945.   To: SCOTT WUNSCH                    Num: 84         Date: 11/09/1992
  2946. From: MAYNARD HOGG                     Re:            Time:  9:25 am
  2947. Subj: Space.Btm                      Prvt: N          Read: N
  2948.  
  2949. On 11-05-92, you wrote MARK STIEBEL
  2950.  
  2951. SW>It might interest you to know that not all of us use SETDOS /V0,
  2952.   >etc. <g> Perhaps an @ECHO OFF would be in order? ;)
  2953.  
  2954. Some us also use COMMAND.COM <g>--but only in Japanese.
  2955.  
  2956. SW>The graph drawing tends to be a little <g> slow on my 386SX-16. I
  2957.   >think 4DOS needs an equivilent to the BASIC STRING$ function.
  2958.  
  2959. I tried BASIC once. In 1980 on a Commodore. At first I liked it
  2960. because it reminded me of FORTRAN, my first programming language, but
  2961. when I graduated to CP/M, I switched to assembler and BDS C.
  2962.  
  2963. What does STRING$ do? There's always %@substr[] and implicit
  2964. concatenation. (See my version for examples.)
  2965.  
  2966. set xxx=%solidbar%%dots
  2967.  
  2968. Building the string and then displaying it with a single call to
  2969. SCRPUT greatly sped up the batch file, but I had to backtrack because
  2970. (1) it was too fast on my 386/33, and (2) the display was boring.
  2971.  
  2972. The line "BEEP 10 2" in my version takes of the first problem.
  2973.  
  2974. My version solves the second by displaying the solid bar six blocks
  2975. (the equivalent of 10%) at a time. Even more interesting would be to
  2976. build the solid bar and display it one character at a time.
  2977.  
  2978. set i=0
  2979. sel len=%@len[%solidbar]
  2980. :loop
  2981. set i=%@eval[%i + 1]
  2982. SCRPUT 8 %@eval[3+%i] %@substr[%solidbar,%i,1]
  2983. if %i lt len goto loop
  2984.  
  2985. MS>SETDOS /s10:100
  2986.  
  2987. SW> Thanks for messing up my cursor :).
  2988.  
  2989. My sentiments exactly.
  2990.  
  2991. SW>Origin:... Regina, Sask.
  2992.  
  2993. My birthplace! I left at the age of six months and never went back
  2994. except to visit my aunt and uncle, Dorothy and Larry Maier.
  2995.  
  2996.  -- SPEED 1.10 [NR]: 
  2997. --- GEcho 1.00/beta+
  2998.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  2999.  
  3000. ------------------------------------------------------------------------
  3001.  
  3002. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3003.  
  3004.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/11/1992
  3005.   To: RALPH SIMS                      Num: 79         Date: 11/09/1992
  3006. From: DAVE M. WALKER                   Re:            Time:  8:44 am
  3007. Subj: un-julian wanted               Prvt: N          Read: N
  3008.  
  3009. RS>I now have a julian routine embedded in numerous BTM files, but
  3010. RS>came across a need to un-julian a date, i.e. return the actual
  3011. RS>month and day of the Julian date.
  3012.  
  3013. RS>Any takers?
  3014.  
  3015. No prob...
  3016.  
  3017.   echo %@makedate[%@eval[%@date[1-1-%@substr[%_date,1,-2]]+%tjd]]
  3018.  
  3019. ...where %tjd is your julian date.  If your date is formatted with the
  3020. year first (ie. 92-11-10), change that to read:
  3021.  
  3022.   echo %@makedate[%@eval[%@date[%@substr[%_date,1,-2]-1-1]+%tjd]]
  3023.  
  3024.  * SLMR 2.1 * An optimist is a guy without much experience
  3025.  
  3026. --- Maximus 2.01wb
  3027.  * Origin: The Southern Star - 5 Lines - HST/V32b - 504-885-5928 - (1:396/1)
  3028.  
  3029. ------------------------------------------------------------------------
  3030.  
  3031. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3032.  
  3033.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/12/1992
  3034.   To: MAYNARD HOGG                    Num: 125        Date: 11/09/1992
  3035. From: DAYTON LIVINGSTON                Re:            Time: 11:09 am
  3036. Subj: For Loops                      Prvt: N          Read: N
  3037.  
  3038. MH> Did you know that 4DOS allows you to change the value of the
  3039. MH> loop variable within a FOR loop? Try the following:
  3040.  
  3041. MH> for %x in (*.*) (set x=%@name[%x]^dir/k/m %x.*^echo....)
  3042.  
  3043. MH> I'm sure someone out there will have a use for this bit of arcana.
  3044.  
  3045. No, I didn't know that.  And yeah, I can already see how that
  3046. might come in handy - as a conditional exit for example.
  3047.  
  3048. Maybe we should change the name of this conference to 4ARCANA?
  3049. (Grin)
  3050.  
  3051. - Dayton
  3052.  
  3053.  * OLX 994 * It ain't over till the FAT table sings...
  3054.  
  3055. --- Maximus 2.00
  3056.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  3057.  
  3058. ------------------------------------------------------------------------
  3059.  
  3060. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3061.  
  3062.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/12/1992
  3063.   To: MARK STIEBEL                    Num: 121        Date: 11/09/1992
  3064. From: DAYTON LIVINGSTON                Re:            Time: 11:09 am
  3065. Subj: Space.Btm                      Prvt: N          Read: N
  3066.  
  3067. MS>  Hi all you fellow 4DOS dudes..
  3068.  
  3069. Hello fellow 4DOS dude!
  3070.  
  3071. MS> SPACE.BTM shows the total, free and used space and
  3072. MS> percentages of a drive, and draws a usage graph as well. It
  3073. MS> might take a few seconds the first time you run it on a
  3074. MS> certain drive while 4DOS logs that drive, but such is life.
  3075.  
  3076. Pretty neat!  However, a couple of suggestions...  When you
  3077. submit things like this over the echo, it's a GOOD idea to format
  3078. them accordingly.  I recieved these lines:
  3079.  
  3080. MS> SCRPUT 6 34 whi on bla - %@DISKFREE[%drive,M] Mbytes
  3081. MS> SCRPUT 4 48 whi on bla - 100`%`
  3082. MS> SCRPUT 5 48 whi on bla -
  3083. MS> %@INT[%@EVAL[(%@DISKUSED[%drive,b]/%@DISKTOTAL[%drive,b])*10
  3084. MS> ]]`%`
  3085. MS> SCRPUT 6 48 whi on bla -
  3086. MS> %@INT[%@EVAL[(%@DISKFREE[%drive,b]/%@DISKTOTAL[%drive,b])*10
  3087. MS> ]]`%`
  3088.  
  3089. which naturally didn't work too well!  They'd have been easier
  3090. for me to figure out if they were formatted like:
  3091.  
  3092.     SCRPUT 6 34 whi on bla - %@DISKFREE[%drive,M] Mbytes
  3093.     SCRPUT 4 48 whi on bla - 100`%`
  3094.     SCRPUT 5 48 whi on bla - %@INT[%@EVAL[(%@DISKUSED...
  3095.     ...[%drive,b]/%@DISKTOTAL[%drive,b])*100]]`%`
  3096.     SCRPUT 6 48 whi on bla - %@INT[%@EVAL[(%@DISKFREE...
  3097.     ...[%drive,b]/%@DISKTOTAL[%drive,b])*100]]`%`
  3098.  
  3099. MS> :: Draw the usage bar. If anyone can find a quicker way
  3100. MS> :: (preferably instantaeous) way to do this, can you please
  3101. MS> :: give me a buzz.
  3102.  
  3103. As for speeding it up...  I couldn't make it instantaneous, but I
  3104. think you'll agree that it's significantly faster to use %@SUBSTR
  3105. in the following manner (long lines split at the three dots, and
  3106. your high-ASCII characters substituted for "*" and "-" so we
  3107. don't get yelled at by the echo moderator):
  3108.  
  3109. YOURS (the "build & loop" approach):
  3110.     :Bar
  3111.     IFF %x gt %c THEN SCRPUT 8 %c bri whi on bla *
  3112.     ELSE IFF %x le %c THEN SCRPUT 8 %c bri whi on bla -
  3113.     ENDIFF
  3114.     Set c=%@EVAL[%c +1]
  3115.     IF %c lt 63 GOTO Bar
  3116.  
  3117. MINE (the "skwew it and do it" approach):
  3118.     SET b=%@SUBSTR[******************************************...
  3119.     ...*****************,0,%@EVAL[%x-4]]
  3120.     SET b=%b%%@SUBSTR[---------------------------------------...
  3121.     ...--------------------,%@EVAL[%x-4],59]
  3122.     SCRPUT 8 4 BRI WHI ON BLA %b ^ UNSET b
  3123.  
  3124. (Of course, you'll want to substiture nice high-ASCII characters
  3125. in place of the "*" and "-" I'm using here!)
  3126.  
  3127. I can't say my solution is perfect, I've done very little testing
  3128. (only two drives), but it matched up with yours on what little
  3129. testing I did, and it's much faster.  By the way, I just did a
  3130. little more testing...  On the bar graph, when a disk is 100%
  3131. full (0 bytes free), it still leaves two blanks at the end.
  3132. Didn't want to mess with it, but thought you should know.  That's
  3133. on my RAMDrive.  I think it might be because it's reading the
  3134. bytes in the files, rather than the bytes actually allocated or
  3135. something?  I fixed it on my copy by deleting the ",59" and two
  3136. of the "-"'s from my seconf SUBSTR line and increasing the SCRPUT
  3137. to "8 5".  Makes the display a little nicer too (IMHO).
  3138. Anyway...
  3139.  
  3140. Thanks for another neat little utility!
  3141.  
  3142. - Dayton
  3143.  
  3144.  * OLX 994 * Maintenance release = written by the janitor?
  3145.  
  3146. --- Maximus 2.00
  3147.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  3148.  
  3149.  
  3150. ------------------------------------------------------------------------
  3151.  
  3152. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3153.  
  3154.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3155.   To: YOUSUF KHAN                     Num: 115        Date: 11/11/1992
  3156. From: MAYNARD HOGG                     Re:            Time: 11:37 am
  3157. Subj: Daylight Savings               Prvt: N          Read: N
  3158.  
  3159. MH>Such loops are not necessary. Once you know what day the last day
  3160.   >of October is, you can CALCULATE the date of the last Sunday.
  3161.  
  3162. YK>True, but that would involve a bunch of "IFF ... THEN ... ELSE[IFF]
  3163.   >... ENDIFF" statements, this one does it only FOR statements.
  3164.  
  3165. MH>Huh? When I said calculate, I meant a single-line calculation of
  3166.   >the form.
  3167.   >(Code for the function DOW have already appeared in this echo.)
  3168.     ^^^^^^^^^^^^^^^^^^^^^^^^^
  3169.   > set sunday=31-%@dow[10-31-%substr[%_date,6,2]]
  3170.                   ^^^^^
  3171. YK>Since when was there ever a %@DOW[...] function? I was looking for
  3172.   >just such a function, but I never found it mentioned in the manual
  3173.   >or the 4dos help file.
  3174.  
  3175. Ever since someone wrote one and posted it in this echo. If you wish
  3176. to participate in this echo, please LEARN TO READ.
  3177.  
  3178. In case you missed, here is my DOW.BTM posted again for the second
  3179. time this month. Can you find the key three lines? (Hint: one of them
  3180. is a QUIT. <g>)
  3181.  
  3182. :@(#)calculates Day of Week
  3183. setlocal
  3184. unalias set echo
  3185. set d=%1
  3186. set m=%2
  3187. set y=%3
  3188. if /%y/==// set y=19%@substr[%_date,6,2]
  3189. if /%m/==// set m=%@substr[%_date,0,2]
  3190. if %y ge 0 .and. %y le 99 set y=19%y
  3191. if %m lt 1 .or. %m gt 12 (echo Invalid month (%m)^goto help)
  3192. if %d lt 1 .or. %d gt 31 (echo Invalid day (%d)^goto help)
  3193. if %y lt 1600 (echo Invalid year (%y)^goto help)
  3194.  
  3195. if %m lt 3 (set y=%@eval[%y-1] ^set m=%@eval[%m+12])
  3196. set d=%@int[%@eval[(13*%m+8)/5+%d]]
  3197. set
  3198. y=%@eval[%y+%@int[%@eval[%y/4]]-%@int[%@eval[%y/100]]+%@int[%@eval[%y/400]]
  3199. quit %@eval[(%y+%d)%%7]
  3200.  
  3201. :help
  3202. echo.^echo Usage: %%@name[%%0] day [ month [year]]
  3203.       echo        if %%? le 6 *echo
  3204. %%@substr[SunMonTueWedThuFriSat,%%@eval[3*%
  3205. echo.^echo Notes:
  3206. echo * "month" and "year" default to current month and year.
  3207. echo * "year" is automatically prefixed with 19 if necessary.
  3208. echo * On error, returns 255.
  3209. quit 255
  3210.  
  3211.  -- sleep zzzz zzzz: 
  3212. --- GEcho 1.00/beta+
  3213.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3214.  
  3215. ------------------------------------------------------------------------
  3216.  
  3217. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3218.  
  3219.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3220.   To: SAUL LEVY                       Num: 117        Date: 11/11/1992
  3221. From: MAYNARD HOGG                     Re:            Time: 11:37 am
  3222. Subj: Disktot.Btm                    Prvt: N          Read: N
  3223.  
  3224. On 11-08-92, you wrote TOM HALL re: DISKTOT.BTM
  3225.  
  3226. SL>Adding commas to a .BTM output is a mess!
  3227.  
  3228. It wasn't as easy as I thought it was going to be.
  3229.  
  3230. SL>The way I see it now (not having done it yet!) is to split up each
  3231.   >number into three digits, add a comma after each and continue to
  3232.   >the end.
  3233.  
  3234. The trick is handling the extra with the modulo operator (%%).
  3235.  
  3236. SL>It's a little worse than that as you'd have to handle numbers from
  3237.   >0 to 999999999!
  3238.  
  3239. The upper limit for the method below is the length of environment
  3240. variables--over a hundred digits even for that other command
  3241. processor (the one without %@substr[]).
  3242.  
  3243. setlocal
  3244. for %x in (123456 1234567 123456789012345678901234567890) (
  3245.  echo %x to...
  3246.  gosub comma
  3247.  echo %x
  3248. )
  3249. quit
  3250.  
  3251. :comma
  3252. set len=%@len[%x]
  3253. set n=%@eval[%len %% 3]
  3254. if %n eq 0 set n=3
  3255. set out=%@substr[%x,0,%n]
  3256. :loop_comma
  3257. ::echo ...%out
  3258. if %n ge %@len[%x] (set x=%out^return)
  3259. set out=%out,%@substr[%x,%n,3]
  3260. set n=%@eval[%n + 3]
  3261. goto loop_comma
  3262.  
  3263.  -- sleep zzzz zzzz: 
  3264. --- GEcho 1.00/beta+
  3265.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3266.  
  3267. ------------------------------------------------------------------------
  3268.  
  3269. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3270.  
  3271.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3272.   To: ALL                             Num: 136        Date: 11/10/1992
  3273. From: JASEN BETTS                      Re:            Time:  6:31 am
  3274. Subj: Keystack Problem               Prvt: N          Read: N
  3275.  
  3276. I cant get keystack to send sancode=1,asciicode=27 (IE the escape key)
  3277.  
  3278.  Keystack @1  does scancode=1
  3279.  Keystack 27  does asciicode=27
  3280.  
  3281. But there's no way to do both in the same key-buffer entry
  3282.  
  3283. has anyone managed to do this?
  3284.  
  3285. BTW:
  3286.  
  3287. Here's a little util which shows the contents on the keybooard buffer.
  3288.  
  3289. begin 644 bios.com
  3290. M!C/`CL"T$LT6M``F.@87!'45)H`V%P2`M!+-%K0`)CH&%P1U`K00!U!84,T6
  3291. M/"!T$8;@Z!$`M`ZP#<T0L`K-$.OGN`!,S2%0Z`,`6(;@4%&Q!-+H6>@#`%@D
  3292. M#P20)Q1`)[0.S1##8GD@4F]B97)T($PN($AU;6UE;"`M("AC*2`Q.3@W(%II
  3293. 59F8@0V]M;75N:6-A=&EO;G,@0V\N
  3294. `
  3295. end
  3296.                         
  3297.  
  3298. --- Maximus 2.01wb
  3299.  * Origin: Mirth Control Chch, NZ 64-3-3890898 v32b/v42b/FAX (3:770/140)
  3300.  
  3301. ------------------------------------------------------------------------
  3302.  
  3303. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3304.  
  3305.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3306.   To: ALL                             Num: 103        Date: 11/11/1992
  3307. From: SCOTT WUNSCH                     Re:            Time:  1:54 pm
  3308. Subj: SHELL.BTM... version 2.00      Prvt: N          Read: N
  3309.  
  3310.   Remember that SHELL.BTM that was originally posted by Mark Stiebel?
  3311. Well, I think I have improved it.  By using aliases to implement its 
  3312. ON, OFF and END commands, it no longer has to do very much with the 
  3313. commands you enter.  Hopefully this will allow things like variable 
  3314. functions and multiple commands (^) to work properly.  Anyhow, here it 
  3315. is...
  3316.  
  3317. _______O_/___________________|  Cut  |___________________\_O_______
  3318.        O \                   | Here! |                   / O
  3319.        
  3320. @ECHO OFF
  3321. : * * * * * * * * * * [ SHELL.BTM v2.00 ] * * * * * * * * *
  3322. : *               4DOS Prompt Shell Batch File            *
  3323. : *                                                       *
  3324. : *  Originally by Mark Stiebel (3:633/159) -- 05/10/92   *
  3325. : *    Revised by Scott Wunsch (1:140/23) -- 11-Nov-92    *
  3326. : *                                                       *
  3327. : *   Description: SHELL.BTM will keep looping, updating  *
  3328. : *                the prompt every second or so.         *
  3329. : *                Commands and aliases are entered as    *
  3330. : *                usual, and are added to the command    *
  3331. : *                history.                               *
  3332. : *                                                       *
  3333. : *             Commands while in SHELL.BTM:              *
  3334. : *             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~              *
  3335. : *             ON - Turn the Status Line ON              *
  3336. : *            OFF - Turn the Status Line OFF             *
  3337. : *            END - Quit SHELL.BTM                       *
  3338. : *                                                       *
  3339. : *           Anything else will run as it would          *
  3340. : *            from a normal 4DOS command line.           *
  3341. : *                                                       *
  3342. : *                     New Features:                     *
  3343. : *                    ~~~~~~~~~~~~~~~                    *
  3344. : *   Handles multi-command  lines (using "^") and other  *
  3345. : *   embedded commands the previous version would choke  *
  3346. : *   on.   Special  commands  now  implemented  through  *
  3347. : *   aliases.
  3348. : *                                                       *
  3349. : * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  3350. SETLOCAL
  3351. Set _SL=1                                       
  3352. Set _FL=0
  3353. Set _ST=%@EVAL[%_ST+1]
  3354. SET CursorStyle=100:1
  3355. ALIAS ON=SET _SL=1
  3356. ALIAS OFF=SET _SL=0
  3357. ALIAS END=SET _GOOD=BYE
  3358.  
  3359. :MainLoop
  3360. Set _cmd=%@CHAR[32]
  3361. if %_CWDS == %cudir goto nochange
  3362. set cudir=%_CWDS
  3363. pushd
  3364. :nochange
  3365.  
  3366. IF '%_SL' == '0' GOTO NoStat
  3367. Setdos /s0:0
  3368.  
  3369. IFF %@DISKFREE[%_DISK:,M] LT 1 THEN^SET _CLR1=%@CHAR[27][0;31;46m^...
  3370. ...ELSE^SET _CLR1=%@CHAR[27][34m^ENDIFF
  3371. IFF %@DOSMEM[k] LT 400 THEN^SET _CLR2=%@CHAR[27][0;31;46m^ELSE^SET...
  3372. ... _CLR2=%@CHAR[27][34m^ENDIFF
  3373. IFF %@EMS[K] LT 500 THEN^SET _CLR3=%@CHAR[27][0;31;46m^ELSE^SET ...
  3374. ..._CLR3=%@CHAR[27][34m^ENDIFF
  3375. IFF %_SHELL GT 0 THEN^SET _CLR4=%@CHAR[27][0;31;46m^ELSE^SET ...
  3376. ..._CLR4=%@CHAR[27][34m^ENDIFF
  3377. IFF %_ST GT 1 THEN^SET _CLR5=%@CHAR[27][0;31;46m^ELSE^SET _CLR5=...
  3378. ...%@CHAR[27][34m^ENDIFF
  3379.  
  3380. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][K
  3381. echos %@CHAR[27][1;30m[%@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  3382. echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  3383. ...3,2]-1]],0,3]
  3384. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m][
  3385. echos %_DISK:%_CLR1%@DISKFREE[%_DISK:,K]Kb%@CHAR[27][1;30m][Mem:%_CLR2%
  3386. echos %@DOSMEM[K]Kb%@CHAR[27][1;30m][EMS:%_CLR3%%@EMS[K]Kb
  3387. echos %@CHAR[27][1;30m][Extended:%@CHAR[27][34m%@EXTENDED[K]Kb
  3388. echos %@CHAR[27][1;30m][Shell:%_CLR4%%_SHELL%%@CHAR[27][1;30m/%_CLR5%
  3389. echos %@EVAL[%_ST-1]%@CHAR[27][1;30m]
  3390. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  3391. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  3392. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  3393. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  3394. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  3395. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  3396. echos %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`| >`
  3397. SETDOS /S100:1
  3398. GOTO SubLoop
  3399.  
  3400. :SubLoop
  3401. IF '%_SL' == '0' GOTO NoStat
  3402. Setdos /s0:0
  3403. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][1;30m[
  3404. echos %@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  3405. echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  3406. ...3,2]-1]],0,3]
  3407. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m]
  3408. echos %@CHAR[27][u%@CHAR[27][0;1;33m
  3409. IF %_FL == 0 (ECHOS %@CHAR[27][3D`|\>`%@CHAR[27][33m ^ SET _FL=1)
  3410. IF %_FL == 1 (ECHOS %@CHAR[27][3D`||>`%@CHAR[27][33m ^ SET _FL=2)
  3411. IF %_FL == 2 (ECHOS %@CHAR[27][3D`|/>`%@CHAR[27][33m ^ SET _FL=3)
  3412. IF %_FL == 3 (ECHOS %@CHAR[27][3D`|->`%@CHAR[27][34m ^ SET _FL=0)
  3413. SETDOS /S%CursorStyle
  3414. GOTO IP
  3415.  
  3416. :NoStat
  3417. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  3418. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  3419. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  3420. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  3421. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  3422. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  3423. ECHOS %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`|`
  3424. echos %@CHAR[240]`>`%@CHAR[27][34m
  3425.  
  3426. :IP
  3427. INPUT /w0 %%_cmd
  3428. :Execute
  3429. History /A %_cmd
  3430. CALL %_cmd
  3431. IF "%_GOOD" == "BYE" (SET _ST=%@EVAL[%_ST-1]^UNSET _GOOD^ENDLOCAL^QUIT)
  3432. IF "%@READSCR[0,0,1]" == "[" GOTO SubLoop
  3433. GOTO MainLoop
  3434.  
  3435. :NoHist
  3436. CALL %@SUBSTR[%_cmd,1]
  3437. GOTO MainLoop
  3438.  
  3439. _______O_/___________________|  Cut  |___________________\_O_______
  3440.        O \                   | Here! |                   / O
  3441.        
  3442.   That's it!
  3443.   
  3444.                                           /\   LLAP...
  3445.                                         > \ cott \\'unsch <
  3446.                                          \/                                  
  3447.      
  3448.  
  3449. ... Oh give me a phone, with a modem on loan...
  3450. --- GEcho 1.00/beta+
  3451.  * Origin: Polestar * Regina, Sask. USR V42.b (1:140/10.0)
  3452.  
  3453.  
  3454.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  3455.                         >> Continued in next message <<
  3456. 
  3457.  
  3458. ------------------------------------------------------------------------
  3459.  
  3460. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3461.  
  3462.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3463.   To: YALL                            Num: 98         Date: 11/10/1992
  3464. From: MAYNARD HOGG                     Re:            Time:  1:26 pm
  3465. Subj: Space.Btm                      Prvt: N          Read: N
  3466.  
  3467. Here are the changes for printing out the solid bar one character at a
  3468. time. The rough musings that I posted yesterday were off the top of my
  3469. head, so had lots of sawdust. <g>
  3470.  
  3471. BTW, on my 486/33, this version takes four times as long as the
  3472. version that I posted with the delay disabled.
  3473.  
  3474. set dt=%@disktotal[%drive,b]
  3475. set du=%@diskused[%drive,b]/%dt
  3476. set x=%@int[%@eval[%du*60 + 0.5]]
  3477. set du=%@int[%@eval[%du*100 + 0.5]]
  3478. ::100% special case--don't print 60th block
  3479. if %x ge 60 set x=59
  3480. if %du ge 100 set du=100
  3481.  
  3482. scrput 5 48 %wob - %du`%`
  3483.  
  3484. ::build bar
  3485. set outc=%@char[177]
  3486. ::six blocks for each 10% on scale
  3487. set outc=%outc%%outc%%outc%%outc%%outc%%@char[179]
  3488. :bar10
  3489. set outc=%outc%%outc%
  3490. if %@len[%outc] lt %x goto bar10
  3491. set outc=%@substr[%outc,0,%x]
  3492.  
  3493. ::print bar one block at a time
  3494. set i=0
  3495. :bar20
  3496. scrput 8 %@eval[4+%i] %bwob %@substr[%outc,%i,1]
  3497. ::delay 2 ticks
  3498. ::beep 10 2
  3499. set i=%@eval[%i + 1]
  3500. if %i lt %x goto bar20
  3501.  * SLEEP 0.00 [ZZ] * I tried BASIC once, but I didn't inhale.
  3502. --- GEcho 1.00/beta+
  3503.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3504.  
  3505. ------------------------------------------------------------------------
  3506.  
  3507. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3508.  
  3509.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3510.   To: RALPH SIMS                      Num: 112        Date: 11/11/1992
  3511. From: MAYNARD HOGG                     Re:            Time:  6:20 am
  3512. Subj: Un-Julian Wanted               Prvt: N          Read: N
  3513.  
  3514. RS>I now have a julian routine embedded in numerous BTM files, but
  3515.   >came across a need to un-julian a date, i.e. return the actual
  3516.   >month and day of the Julian date.
  3517.  
  3518. If %jd is the julian date: (tested!)
  3519.  
  3520. echo %@makedate[%@eval[%@date[1-1-%@substr[%_date,6,2]] + %jd -1]]
  3521.  
  3522.  -- SLEEP 0.00 [ZZ]: 
  3523. --- GEcho 1.00/beta+
  3524.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3525.  
  3526. ------------------------------------------------------------------------
  3527.  
  3528. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3529.  
  3530.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/14/1992
  3531.   To: JASEN BETTS                     Num: 95         Date: 11/08/1992
  3532. From: HUGO LANDSMAN                    Re:            Time: 10:06 pm
  3533. Subj: Touching file in 4dos??        Prvt: N          Read: N
  3534.  
  3535. Hi Jasen,
  3536.  
  3537. 22 Oct 1992 03:26, Jasen Betts (3:770/140) wrote to Gregory P. Smith:
  3538.  
  3539.  JB> The alias for a msdos version of touch is... (get ready to spew)
  3540.  
  3541.  JB> alias touch for x in (%%&) do command /c copy %%x+,,
  3542.  
  3543. You've been sleeping? ;-)  The alias for 4DOS is: for x in (%&) copy/b %x+nul
  3544. --- FastEcho 1.21/b4
  3545.  * Origin:  st. anna: just showing off with fastecho 1.21/b4 :-)
  3546. (2:512/154.5)
  3547.       To:  Michelangelo Jones         Message #:  10604
  3548.     From:  Maynard Hogg               Submitted:  12 Nov 92 12:49:00  
  3549.  Subject:  Exe Pick Lists                Status:  Public
  3550. Received:  No                             Group:  4DOS (89)
  3551.  
  3552. MSGID: 6:730/9 9f0cd930
  3553. PID: GE 1/b21
  3554. On 11-09-92, you wrote REX CONN re: 4DOS Wish List/Enhancements
  3555.  
  3556. MJ>Something in %@functions approximating the FindFirst/FindNext DOS
  3557.   >functions, but with 4DOS wildcards? Usage: something approximating
  3558.   >EX*.EXE[Tab][Return] in a batch file?
  3559.  
  3560. What exactly is it that you are trying to do? Have you tried something
  3561. like the following? (I hadn't. Surprise! Another off-the-wall idea of
  3562. mine that works!)
  3563.  
  3564. SELECT/otr (ex*.exe)
  3565.       ^^^^ ^       ^ ^^^^^^^^
  3566.       (1)  (2)       (3)
  3567.  
  3568. (1) Whatever order you like.
  3569.  
  3570. (2) These must be parentheses, not brackets.
  3571.  
  3572. (3) Alas, no command line parameters. (You'll have to select from BTM
  3573. wrappers instead. <g>)
  3574.  
  3575.  -- beggarware sux : 
  3576. --- GEcho 1.00/beta+
  3577.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3578. =-=-=-=-=
  3579.       To:  Phi Nguyen                 Message #:  11615    1932 <Thread
  3580.     From:  George Worley              Submitted:  12 Nov 92 09:10:00  
  3581.  Subject:  Loading alias                 Status:  Public
  3582. Received:  No                             Group:  4DOS (89)
  3583.  
  3584. -=> Quoting Phi Nguyen to George Worley on 05 Nov 92  05:02:00 <=-
  3585.  
  3586. Hi Phi Nguyen,
  3587.  
  3588.  GW>Except it would not work.  The correct command should be:
  3589.  GW>ALIAS AE=x:\path\EDIT x:\path\ALIAS.LST^(ALIAS /R x:\path\ALIAS.LST)
  3590.  GW>Without proper grouping your alias file would not be read.
  3591.  
  3592.  PN> edita keystack Alt-V Alt-P "X" Esc
  3593.  PN> ^write c:\4\aliases^unalias *
  3594.  PN> ^alias /r c:\4\aliases
  3595.  
  3596. That seems like too much work or I should say too much alias space to me, 
  3597. mine on the other hand calles the alias EDIT which can be used by other 
  3598. things.  I use VDE as that I can have this all ready put into one of the 
  3599. default options for the particalar file type.  And, if you do it the way I 
  3600. have done it you do need the grouping.   Also if I am only goning to add 1 
  3601. alias to it I have another command for that:
  3602.  
  3603. alias=*alias %&^if "%&" ne "" (*alias > c:\4dos\alias)
  3604.  
  3605. This is sort and sweet - nothing fancy but it gets the job done.
  3606.  
  3607. George
  3608.  
  3609. ... Everyone wants to be noticed, but no one wants to be watched...
  3610. --- Blue Wave/Opus v2.11c Beta
  3611.  * Origin: PIC of the MID Town BBS (713) 527-8939 (1:106/31.0)
  3612. =-=-=-=-=
  3613.       To:  all                        Message #:  10599
  3614.     From:  Neal Jackson               Submitted:  11 Nov 92 19:32:00  
  3615.  Subject:  onceaweek                     Status:  Public
  3616. Received:  No                             Group:  4DOS (89)
  3617.  
  3618. MSGID: 1:104/717.2 2b015ff7
  3619. Hello all!
  3620.  
  3621. Is there a way to add the %_dow[sun] variable to the Onceaday.btm
  3622. to make it run my files backup btm every Sunday when I boot up? 
  3623. I am running Speedisk, Timeset and Chkdsk daily with this btm. 
  3624. Will it accommodate a weekly call or would a Onceweek.btm be required?
  3625.  
  3626. Here is Onceaday.btm :
  3627.  
  3628. ---------------------------------------------------------------------------
  3629.  
  3630. : ONCEADAY.BTM
  3631. setlocal
  3632. set lastdate=0
  3633. iff exist %_boot:\onceaday.dat then
  3634. set lastdate=%@line[%_boot:\onceaday.dat,0]
  3635. endiff
  3636. iff %@date[%_date] gt %lastdate then
  3637. iff %time[%_time] gt %@time[06:00] then
  3638. call %&
  3639. echo %@date[%_date] >! %_boot:\onceaday.dat
  3640. endiff
  3641. endiff
  3642.  
  3643.  
  3644. ---------------------------------------------------------------------------
  3645.  
  3646. Thanks.
  3647.  
  3648. Neal
  3649.  
  3650. --- GoldED 2.40.P0720
  3651.  * Origin: Redrum (1:104/717.2)
  3652. =-=-=-=-=
  3653.       To:  Mark Stiebel               Message #:  10583    7182 <Thread> 10584
  3654.     From:  Michael Jerkovic           Submitted:  06 Nov 92 20:25:00  
  3655.  Subject:  SPACE.BTM                     Status:  Public
  3656. Received:  No                             Group:  4DOS (89)
  3657.  
  3658. MSGID: 3:634/387 2afad4a0
  3659. :Hi Mark
  3660. :I found your space.btm enough inspiration to cook this up.
  3661. :It has a few extra display features;
  3662. :1. Almost instant bar graph (as requested).
  3663. :2. The ability to display two or more graphs on the same screen.
  3664. :
  3665. :All are welcome to use, hack, and destroy to their delight.
  3666. :Michael Jerkovic (Melb/Aust)
  3667. :
  3668. :Note the line starting with "if not %u_int==0" is split over two lines.
  3669. :
  3670. :\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  3671. @echo off
  3672. setlocal
  3673.  
  3674. :: Validate Input
  3675.  
  3676. set dsk=%@upper[%@substr[%1,0,1]]:
  3677. iff "%dsk"==":" then
  3678.    set dsk=%_disk:
  3679. elseiff %@ready[%dsk]==0 then goto usage
  3680. endiff
  3681.  
  3682. :: Screen Handling
  3683. :: This allow use to set up a alias to show two or more drive, depending
  3684. :: on how many lines you have your screen set up for.
  3685. :: Example: alias spacd=cls^for %a in (c d) space %a
  3686. ::          (this will work on a 25 line screen.)
  3687. :: Note: The screen handling slows down space.btm a bit, if you have
  3688. :: no need for screen handling, then rewrite with hardcoded row numbers.
  3689.  
  3690. set row=%_row
  3691. if %row gt %@eval[%_rows-11] (cls^set row=0)
  3692. set drow=%@eval[%row+2]
  3693. set trow=%@eval[%row+4]
  3694. set urow=%@eval[%row+5]
  3695. set frow=%@eval[%row+6]
  3696. set brow=%@eval[%row+8]
  3697. set fin=%@eval[%row+10]
  3698.  
  3699. :: Disk usage in %
  3700. :: Note 1: that 1 byte is added to the total of disk used.
  3701. :: This avoids error caused by running space on an empty drive.
  3702. :: Note 2: The ratio has an error of +-0.01%
  3703.  
  3704. set ratio=%@eval[(%@diskused[%dsk,b]+1)/%@disktotal[%dsk,b]]
  3705. set up=%@eval[%@int[%@eval[%ratio*10000]]/100]
  3706. set fp=%@eval[100-%up]
  3707.  
  3708. :: Display Bar calculation
  3709. :: I have used a 50 char bar.  If you change the template, "50"
  3710. :: should be changed to the length of the new bar.
  3711.  
  3712. set u_no=%@eval[%ratio*50]
  3713. set u_int=%@int[%u_no]
  3714. if %u_int ne 0 .and. %@eval[%u_no-%u_int] ge .5 set u_int=%@eval[%u_int+1]
  3715.  
  3716. :: Use a template for the layout
  3717.  
  3718. screen %row 0
  3719. text
  3720.  
  3721.             ╔═════════════════════════╤══════════════════════════╗
  3722.             ║ Statistics for drive    │ SPACE.BTM                ║
  3723.             ╟─────────────────────────┴──────────────────────────║
  3724.             ║     Total :                            100%        ║
  3725.             ║      Used :                                        ║
  3726.             ║      Free :                                        ║
  3727.             ╟────────────────────────────────────────────────────╢
  3728.             ║ .................................................. ║
  3729.             ╚════════════════════════════════════════════════════╝
  3730. endtext
  3731.  
  3732. :: Stuff the screens face
  3733.  
  3734. if not %u_int==0 scrput %brow 14 bri whi on %_bg %@substr[
  3735. ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓,0,%u_int]
  3736. scrput %drow 35 bri whi on %_bg %dsk
  3737. screen %trow 26 %@disktotal[%dsk,K]K
  3738. screen %urow 26 %@diskused[%dsk,K]K
  3739. screen %frow 26 %@diskfree[%dsk,K]K
  3740. screen %trow 39 %@disktotal[%dsk,M]M
  3741. screen %urow 39 %@diskused[%dsk,M]M
  3742. screen %frow 39 %@diskfree[%dsk,M]M
  3743. screen %urow 53 %up%%%
  3744. screen %frow 53 %fp%%%
  3745. screen %fin 0
  3746.  
  3747. endlocal
  3748. quit
  3749.  
  3750. :usage
  3751. if %dsk==A: .or. %dsk==B: (beep^echo Drive %dsk is not ready.)
  3752. echo Usage: SPACE [drive]
  3753. echo        The default drive is current the drive.
  3754.  
  3755. endlocal
  3756. :\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  3757.  
  3758. --- TMail v1.25
  3759.  * Origin: Dr Blaze, the Turbo Pascal Repairman. (3:634/387)
  3760. =-=-=-=-=
  3761.       To:  Scott Wunsch               Message #:  10602   10586 <Thread> 10608
  3762.     From:  Maynard Hogg               Submitted:  12 Nov 92 12:49:00  
  3763.  Subject:  Space.Btm                     Status:  Public
  3764. Received:  No                             Group:  4DOS (89)
  3765.  
  3766. MSGID: 6:730/9 9f0cd92e
  3767. PID: GE 1/b21
  3768. MH>What does STRING$ do?
  3769.  
  3770. SW>STRING$ takes two parameters: the number of repetitions, and the
  3771.   >character to repeat.
  3772.   >SET LONGLINE=%@REPEAT[#,100]
  3773.   >...which would produce a row of 100 # signs. <g>
  3774.  
  3775. That's easy enough to simulate: (Note that the function is
  3776. logarithmic, not linear with regard to the length parameter. It could
  3777. also use some error checking.)
  3778.  
  3779. setlocal
  3780. for %arg2 in (25 50 100) (
  3781. set arg1=#
  3782. timer on
  3783. gosub string
  3784. timer
  3785. echo %arg1
  3786. )
  3787. quit
  3788.  
  3789. :string
  3790. set arg1=%arg1%%arg1%
  3791. if %arg2 gt %@len[%arg1] goto string
  3792. set arg1=%@substr[%arg1,0,%arg2]
  3793. return
  3794.  
  3795. But, yes, a built-in function would be much faster.
  3796.  
  3797.  -- beggarware sux : 
  3798. --- GEcho 1.00/beta+
  3799.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  3800. =-=-=-=-=
  3801.       To:  Mark Stiebel               Message #:  13332   11618 <Thread
  3802.     From:  Bill-Steven Kerr           Submitted:  09 Nov 92 19:15:00  
  3803.  Subject:  SPACE.BTM                     Status:  Public
  3804. Received:  No                             Group:  4DOS (89)
  3805.  
  3806. MSGID: 2:259/27.5@Fido 9d132281
  3807. Hi Mark, here's a little sysinfo batch file I use. The bars are dead quick!
  3808.  
  3809. --------------- chop here -----------------
  3810. @ECHO OFF
  3811. :: Sysinfo.btm by Steven Kerr '92
  3812. :: Email - Fido   : 2:259/27.5
  3813. ::       - Usenet : bill-steven.kerr@almac.co.uk
  3814. ::
  3815. SETLOCAL
  3816. CLS
  3817. SCREEN 19 0
  3818. :: //
  3819. DRAWBOX 2 0 18 79 0 BRI BLA ON WHI FILL WHI
  3820. SCRPUT 18 1 BRI BLA ON WHI ▄▄▄▄▄▄▄▄▄▄▄▄
  3821. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3822. SCRPUT 2 1 BRI WHI ON WHI ▀▀▀▀▀▀▀▀▀▀▀▀▀
  3823. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3824. SCRPUT 2 78 BRI BLA ON WHI ▀
  3825. DRAWVLINE 2 0 17 0 BRI WHI ON WHI
  3826. SCRPUT 18 1 BRI WHI ON WHI ▄
  3827. :: //
  3828. DRAWBOX 4 2 16 37 0 RED ON WHI FILL RED
  3829. DRAWHLINE 3 2 11 0 RED ON WHI
  3830. DRAWHLINE 17 4 35 0 BRI BLA ON WHI
  3831. DRAWVLINE 5 38 13 0 BRI BLA ON WHI
  3832. DRAWVLINE 5 39 13 0 BRI BLA ON WHI
  3833. :: //
  3834. DRAWBOX 4 42 8 75 0 BLU ON WHI FILL BLU
  3835. DRAWHLINE 3 42 11 0 BLU ON WHI
  3836. DRAWHLINE 9 44 34 0 BRI BLA ON WHI
  3837. DRAWVLINE 5 76 5 0 BRI BLA ON WHI
  3838. DRAWVLINE 5 77 5 0 BRI BLA ON WHI
  3839. :: //
  3840. DRAWBOX 12 42 16 75 0 MAG ON WHI FILL MAG
  3841. DRAWHLINE 11 42 11 0 MAG ON WHI
  3842. DRAWHLINE 17 44 34 0 BRI BLA ON WHI
  3843. DRAWVLINE 13 76 5 0 BRI BLA ON WHI
  3844. DRAWVLINE 13 77 5 0 BRI BLA ON WHI
  3845. :: //
  3846. SCRPUT 3 4 BRI WHI ON RED GENERAL
  3847. SCRPUT 3 44 BRI WHI ON BLU DISK C:
  3848. SCRPUT 11 44 BRI WHI ON MAG DISK D:
  3849. :: //
  3850. SCRPUT 5 4 BRI WHI ON RED 4DOS Version No.  :   %_4ver
  3851. SCRPUT 6 4 BRI WHI ON RED DOS Version No.   :   %_dosver
  3852. SCRPUT 7 4 BRI WHI ON RED Alias Free        :   %_alias b
  3853. SCRPUT 8 4 BRI WHI ON RED Environment Free  :   %_env b
  3854. SCRPUT 9 4 BRI WHI ON RED System Time       :   %_time
  3855. SCRPUT 10 4 BRI WHI ON RED System Date       :   %_date
  3856. SCRPUT 11 4 BRI WHI ON RED Day of the week   :   %_dow
  3857. SCRPUT 12 4 BRI WHI ON RED Monitor Type      :   %_monitor
  3858. SCRPUT 13 4 BRI WHI ON RED Video Card        :   %@UPPER[%_video]
  3859. IFF "%_NDP"=="387" .AND. "%_CPU"=="486" THEN
  3860.         SCRPUT 14 4 BRI WHI ON RED Maths Copro.      :   487
  3861. ELSE
  3862.         SCRPUT 14 4 BRI WHI ON RED Maths Copro.      :   %_ndp
  3863. ENDIFF
  3864. SCRPUT 15 4 BRI WHI ON RED Shell level       :   %_shell
  3865. :: //
  3866. SCRPUT 5 44 BLA ON BLU ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  3867. SCRPUT 13 44 BLA ON MAG ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  3868. SCRPUT 7 44 BRI WHI ON BLU Used  :  %@diskused[c:,M] of %@disktotal[c:,M] Mb
  3869. SCRPUT 15 44 BRI WHI ON MAG Used  :  %@diskused[d:,M] of %@disktotal[d:,M] Mb
  3870.  
  3871. :: Join up the four lines below..
  3872.  
  3873. DRAWHLINE 5 44 %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[C:]/
  3874. %@DISKTOTAL[C:])*100]]/10)*3]] 0 WHI ON WHI
  3875.  
  3876. DRAWHLINE 13 44 %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[D:]/
  3877. %@DISKTOTAL[D:])*100]]/10)*3]] 0 WHI ON WHI
  3878.  
  3879. SCRPUT 5 45 BRI WHI ON WHI %@INT[%@EVAL[(%@DISKUSED[C:]/
  3880. %@DISKTOTAL[C:])*100]]%
  3881.  
  3882. SCRPUT 13 45 BRI WHI ON WHI %@INT[%@EVAL[(%@DISKUSED[D:]/
  3883. %@DISKTOTAL[D:])*100]]%
  3884.  
  3885. SCRPUT 5 47 BRI WHI ON WHI `%`
  3886. SCRPUT 13 47 BRI WHI ON WHI `%`
  3887. :: //
  3888. :EXIT
  3889. SCREEN 19 0
  3890. ENDLOCAL
  3891. ---------- chop here ---------------
  3892.  
  3893. Have fun!
  3894.  
  3895. Steven.
  3896. Fidonet : 2:259/27.5
  3897. Usenet  : bill-steven.kerr@almac.co.uk
  3898.  
  3899. --- FMail 0.90
  3900.  * Origin: Bill-Steven Kerr, Mid Calder, SCOTLAND (2:259/27.5)
  3901. =-=-=-=-=
  3902.  
  3903. ------------------------------------------------------------------------
  3904.  
  3905. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  3906.  
  3907.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/16/1992
  3908.   To: ALL                             Num: 33         Date: 11/12/1992
  3909. From: SAUL LEVY                        Re:            Time:  4:02 am
  3910. Subj: DISKTOTP.BTM                   Prvt: N          Read: N
  3911.  
  3912. All,
  3913.  
  3914. Here is DiskTOT-Plus, a little utility based on DISKTOT.BTM version 1.1 
  3915. and DISKLEFT.EXE version 2.3 by Paul Munoz-Colman (DISKLF23.ZIP, 28K).  
  3916. DISKLEFT can give the total disk, free and used capacities for all of 
  3917. your drives, but I prefer the order shown below and to also have 
  3918. percentages.
  3919.  
  3920. So I rewrote the following batch file (note the way that the three long 
  3921. lines were handled):
  3922.  
  3923.  
  3924. ============================== CUT HERE ================================
  3925. @echo off
  3926. rem DISKTOTP.BTM by Saul Levy, Tucson, Arizona, 11/9/92, version 1.0
  3927.  
  3928.  
  3929. rem Change drive list, descriptions and description output for your
  3930. rem system!
  3931.  
  3932. rem Also, for different formatting, change %blanks string and %blanks
  3933. rem string-output lengths to suit
  3934.  
  3935. rem This version handles values up to 999,999,999 and percentages from 0 
  3936. rem to 100 (the latter are rounded up to the next higher % as needed)
  3937.  
  3938. setlocal
  3939.  
  3940. rem Nice title and a plug for the programmer!
  3941. cls bright white on blue
  3942. drawbox 0 31 2 46 2 red on green fill green shadow
  3943. scrput 1 33 bright white on magenta DiskTOT-Plus
  3944. scrput 3 35 bright white on black by Saul Levy
  3945.  
  3946. rem Skip over title
  3947. echo.
  3948. echo.
  3949. echo.
  3950. echo.
  3951. echo.
  3952.  
  3953.  
  3954. rem Main routine
  3955.  
  3956. set blanks=`        `
  3957.  
  3958. gosub getdes
  3959.  
  3960. echos `Drive    Total         Used     %       Free     %       Drive `
  3961. echo `Description`
  3962. echos `===============================================================`
  3963. echo `================`
  3964. color bright green on blue
  3965. for %a in (C: D: E: F: G: H:) do gosub getnums
  3966. color bright white on blue
  3967. echos `===============================================================`
  3968. echo `================`
  3969.  
  3970. set dutp=%@int[%@eval[%dut/%dtt*100+.5]]
  3971. set dftp=%@int[%@eval[%dft/%dtt*100+.5]]
  3972.  
  3973. set dum=%dtt
  3974. gosub fill9
  3975. echos Total %dum1%%dum2%%dum3%
  3976. set dum=%dut
  3977. gosub fill9
  3978. echos   %dum1%%dum2%%dum3%
  3979. echos %@substr[%blanks,0,%@eval[3-%@len[%dutp]]] %dutp
  3980. set dum=%dft
  3981. gosub fill9
  3982. echos   %dum1%%dum2%%dum3%
  3983. echo %@substr[%blanks,0,%@eval[3-%@len[%dftp]]] %dftp
  3984.  
  3985.  
  3986. color white on blue
  3987. endlocal
  3988. quit
  3989.  
  3990.  
  3991. rem Subroutine to get data about drives (blank-fill to nine digits)
  3992.  
  3993.  
  3994. :getnums
  3995.  
  3996. set dt=%@disktotal[%a]
  3997. set du=%@diskused[%a]
  3998. set dup=%@int[%@eval[%du/%dt*100+.5]]
  3999. set df=%@diskfree[%a]
  4000. set dfp=%@int[%@eval[%df/%dt*100+.5]]
  4001.  
  4002. set dtt=%@eval[%dtt+%dt]
  4003. set dut=%@eval[%dut+%du]
  4004. set dft=%@eval[%dft+%df]
  4005.  
  4006. set dum=%dt
  4007. gosub fill9
  4008. echos   %a  %dum1%%dum2%%dum3%
  4009. set dum=%du
  4010. gosub fill9
  4011. echos   %dum1%%dum2%%dum3%
  4012. echos %@substr[%blanks,0,%@eval[3-%@len[%dup]]] %dup
  4013. set dum=%df
  4014. gosub fill9
  4015. echos   %dum1%%dum2%%dum3%
  4016. echos %@substr[%blanks,0,%@eval[3-%@len[%dfp]]] %dfp
  4017.  
  4018. rem Output drive descriptions
  4019.  
  4020. if %a=A: echo %@substr[%blanks,0,1] %driveA
  4021. if %a=B: echo %@substr[%blanks,0,1] %driveB
  4022. if %a=C: echo %@substr[%blanks,0,1] %driveC
  4023. if %a=D: echo %@substr[%blanks,0,1] %driveD
  4024. if %a=E: echo %@substr[%blanks,0,1] %driveE
  4025. if %a=F: echo %@substr[%blanks,0,1] %driveF
  4026. if %a=G: echo %@substr[%blanks,0,1] %driveG
  4027. if %a=H: echo %@substr[%blanks,0,1] %driveH
  4028.  
  4029. return
  4030.  
  4031.  
  4032. rem Subroutine to get description of each drive
  4033.  
  4034.  
  4035. :getdes
  4036.  
  4037. rem       |<=STAY   INSIDE    LINES=>|
  4038. set driveA=1.2 MB floppy
  4039. set driveB=360 K floppy
  4040. set driveC=Describe each drive here.
  4041. set driveD=Up to 26 characters each.
  4042. set driveE=Next line is blank.
  4043. set driveF=%@char[24]%@char[255]
  4044. set driveG=Plus Hardcard II XL 105
  4045. set driveH=RAM Drive
  4046. rem       |<Ctrl-X><Alt-255>         |
  4047.  
  4048. return
  4049.  
  4050.  
  4051. rem Subroutine to blank-fill values to nine digits, add comma after
  4052. rem every three digits except where all blanks
  4053.  
  4054.  
  4055. :fill9
  4056.  
  4057.  
  4058.  
  4059.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  4060.                         >> Continued in next message <<
  4061.  
  4062. ------------------------------------------------------------------------
  4063.  
  4064. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4065.  
  4066.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/16/1992
  4067.   To: ALL                             Num: 34         Date: 11/12/1992
  4068. From: SAUL LEVY                        Re:            Time:  4:02 am
  4069. Subj: DISKTOTP.BTM                   Prvt: N          Read: N
  4070.  
  4071.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  4072.                      >> Continued from previous message <<
  4073.  
  4074.  
  4075. set dum=%@substr[%blanks,0,%@eval[9-%@len[%dum]]]%dum%
  4076. set dum1=%@substr[%dum,0,3], ^ if "%dum1"="   ," set dum1=`    `
  4077. set dum2=%@substr[%dum,3,3], ^ if "%dum2"="   ," set dum2=`    `
  4078. set dum3=%@substr[%dum,6,3]
  4079.  
  4080. return
  4081.  
  4082. rem End of DISKTOTP.BTM
  4083. ============================== CUT HERE ================================
  4084.  
  4085.  
  4086. The environmental variables are shortened to save space:
  4087.  
  4088.   dt   is the Disk Total capacity for each drive
  4089.   du   is the Disk Used capacity for each drive
  4090.   dup  is the Disk Used divided by Disk Total percentage
  4091.   df   is the Disk Free capacity for each drive
  4092.   dfp  is the Disk Free divided by Disk Total percentage
  4093.  
  4094.   dtt  is the total (sum) of the Disk Total capacities
  4095.   dut  is the total (sum) of the Disk Used capacities
  4096.   dft  is the total (sum) of the Disk Free capacities
  4097.  
  4098.   dutp is the total Disk Used divided by total Disk Total percentage
  4099.   dftp is the total Disk Free divided by total Disk Total percentage
  4100.  
  4101.   blanks is a blank string long enough to fill out each column for
  4102.     alignment (here 8 spaces)
  4103.  
  4104.   dum, dum1, dum2, dum3 are temporary variables used to add commas
  4105.  
  4106.  
  4107. Here is a sample output (I hope it isn't too long to pass through the 
  4108. net unharmed):
  4109.  
  4110.  
  4111. Drive    Total         Used     %       Free     %       Drive Description
  4112. ==============================================================================
  4113.  
  4114.   C:   21,344,256   21,006,336  98      337,920   2  Describe each drive
  4115. here.
  4116.   D:   21,344,256   20,469,760  96      874,496   4  Up to 26 characters
  4117. each.
  4118.   E:   21,291,008   12,990,464  61    8,300,544  39  Next line is blank.
  4119.   F:   21,291,008    2,172,928  10   19,118,080  90  [Nothing shows
  4120. on-screen]
  4121.   G:  104,738,816   34,254,848  33   70,483,968  67  Plus Hardcard II XL 105
  4122.   H:      324,096       99,328  31      224,768  69  RAM Drive
  4123. ==============================================================================
  4124.  
  4125. Total 190,333,440   90,993,664  48   99,339,776  52
  4126.  
  4127.  
  4128. The substr[] functions left fill each value so the columns line up.  The 
  4129. percentages can hold from 1 to 3 digits as shown.  Each percentage is 
  4130. rounded up as needed.  Change the substr[] functions to suit if you need 
  4131. more room above 999 MB (increase the 9s).  The output of DISKTOTP is 
  4132. compressed to give more room for the drive descriptions.
  4133.  
  4134. Use redirection to save the output to a file (disktotp >filename) which 
  4135. makes it easy to see how fast your drives are filling up.  The colored 
  4136. header is not saved (DRAWBOX and SCRPUT are screen-only functions), but 
  4137. the other ANSI commands will appear in the output file (removed above).  
  4138. Change the colors to your favorites, especially the last COLOR statement 
  4139. just before the ENDLOCAL should give your default colors (I also use the 
  4140. PROMPT to color my system).  Remove the blue backgrounds if you have a 
  4141. monochrome system.
  4142.  
  4143. Alas, DISKLEFT runs in less than 2 seconds while DISKTOT takes over 10 
  4144. (with no floppy drives specified).  DISKTOTP takes 19 or 28 seconds 
  4145. depending on whether my new Plus Hardcard has already stored the 
  4146. information in its on-board cache or not.  If you have a slow computer, 
  4147. use DISKTOT (you can add color as shown above).  The batch files are 
  4148. still much smaller than DISKLEFT.EXE.
  4149.  
  4150. The 'for %a...' line won't work as written if %a is replaced by %drv and 
  4151. the colons left off.  Change this line, the descriptions and the 
  4152. description output to suit your own system.
  4153.  
  4154. This version adds color, a drive description of up to 26 characters 
  4155. (whatever you want), and commas to the values to make them easier to 
  4156. read (Note to Tom Hall:  It was simple to code!).  Each value is blank- 
  4157. filled to nine total characters.  Then the substr[] function is used to 
  4158. pick off three-character groups and a comma is added to the right end of 
  4159. the first two groups (%dum1 and %dum2).  
  4160.  
  4161. You may need to increase the environment size from the default 512 bytes 
  4162. (I'm using 640 which doesn't leave much!).  Either use an /E:nnn in the 
  4163. SHELL statement or add/modify the ENVIRONMENT = nnn statement in 
  4164. 4DOS.INI.
  4165.  
  4166. There must be some way to make the drive description output use only one 
  4167. line of code for all drives!  I tried various things, but need help!  
  4168. There are probably other ways to shorten this batch file...
  4169.  
  4170. My thanks to Douglas Kitson for his support (and naming DiskTOT-Plus!).  
  4171. Remember, have fun with this!                                  ^^^^^
  4172.  
  4173. Saul
  4174. --- GEcho 1.00
  4175.  * Origin: Old Pueblo BBS - Tucson Computer Society (1:300/2)
  4176.  
  4177. ------------------------------------------------------------------------
  4178.  
  4179. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4180.  
  4181.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/17/1992
  4182.   To: YALL                            Num: 107        Date: 11/14/1992
  4183. From: MAYNARD HOGG                     Re:            Time:  5:04 pm
  4184. Subj: Alias: Getyn                   Prvt: N          Read: N
  4185.  
  4186. Try adding the following to your aliases file (all on one line, of
  4187. course).
  4188.  
  4189. getyn `inkey /K"YN[ENTER]" %& (%YNS) %%YN^ \
  4190.  if /%YN/==// .or. /%YN/==/%@char[13]/ set YN=%@substr[%YNS,0,1]`
  4191.  
  4192. Description:
  4193.  
  4194. INKEY wrapper that returns, via environment variable YN, the default
  4195. value, specified via environment variable YNS, when the user hits
  4196. Enter or INKEY times out.
  4197.  
  4198. Usage:
  4199.  
  4200. set YNS=Y/n
  4201. ::      ^
  4202. getyn /Wx blah, blah, blah
  4203. ::    ^^^wait limit for INKEY
  4204.  
  4205. Examples:
  4206.  
  4207. Here are two applications from OPTDISK.BTM, a wrapper for two disk
  4208. optimizers.
  4209.  
  4210. setlocal
  4211. set thisbat=%@lower[%@name[%0]]
  4212. :
  4213.  
  4214. :readyloop
  4215. iff %@ready[%D] == 1 then gosub doit
  4216. else (
  4217.   @echo.
  4218.   @echo.%thisbat: Drive %D is not ready.
  4219.   @echo.
  4220.   @echo.Please insert a disk, make sure
  4221.   @echo.that the hard drive is operational,
  4222.   @echo.or just skip.
  4223.   @echo.
  4224.   set YNS=N/y
  4225.   getyn /W10 %thisbat: Process drive %D?
  4226.   if /%yn/ == /y/ goto readyloop
  4227. )
  4228. :
  4229.  
  4230. :doit
  4231. set YNS=Y/n
  4232. getyn /W10 %thisbat: Process drive %D?
  4233. if /%YN/ == /N/ return
  4234.   set YNS=N/y
  4235.   getyn /W10 %thisbat: Process drive %D?
  4236.   if /%YN/ == /y/ goto readyloop
  4237. )
  4238. :
  4239. return
  4240.  * beggarware sux  * 
  4241. --- GEcho 1.00/beta+
  4242.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  4243.  
  4244. ------------------------------------------------------------------------
  4245.  
  4246. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4247.  
  4248.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/17/1992
  4249.   To: MICHELANGELO JONES              Num: 106        Date: 11/14/1992
  4250. From: MAYNARD HOGG                     Re:            Time:  5:04 pm
  4251. Subj: Daylight Savings               Prvt: N          Read: N
  4252.  
  4253. On 11-11-92, you wrote YOUSUF KHAN
  4254.  
  4255. MJ>set month=%@substr[%_date,0,2]
  4256.   >if %month LT 4 .OR. %month GT 10 set daylight=0
  4257.   >if %month GT 4 .AND. %month LT 10 set daylight=1
  4258.   >iff "%daylight" != "" then^unset month^quit^endiff
  4259.  
  4260. Huh? At first look, because the first two tests are mutually
  4261. exclusive, this should be marginally faster:
  4262.  
  4263. iff %month LT 4 .OR. %month GT 10 then set daylight=0
  4264. elseiff %month GT 4 .AND. %month LT 10 then set daylight=1
  4265. endiff
  4266. if "%daylight" != "" (unset month^quit)
  4267.  
  4268. Why use UNSET, when SETLOCAL is available? Because you're afraid of
  4269. losing the result in %daylight? You can fix that by changing all your
  4270. QUITs to the following
  4271.  
  4272. quit %daylight
  4273.  
  4274. If you're willing to put up with multiple return points--generally
  4275. inadvisable in structured programming, but oh so handy here--you can
  4276. simplify greatly, dealing with the easy cases first.
  4277.  
  4278. if %month lt 4 .or. %month gt 10 then quit 0
  4279. if %month gt 4 .and. %month lt 10 then quit 1
  4280. :
  4281.  
  4282. But for speed, nothing beats a lookup table:
  4283.  
  4284. ::@(#)Returns 1 if daylight savings is in effect today
  4285. ::Maynard Hogg, 11/14/91
  4286. ::
  4287. setlocal
  4288. set month=%@substr[0000200000300,%@substr[%_date,0,2],1]
  4289. ::Note month "0"---^   ^Apr  ^Oct
  4290. if %month le 1 quit %month
  4291. ::next Sunday?
  4292. ::Can't use previous Sunday since 4DOS treats negative
  4293. ::numbers in comparisons as strings in comparisons!
  4294. set sun=%@eval[%@substr[%_date,3,2]- \
  4295.   %@index[SunMonTueWedThuFriSat,%_dow]/3 + 7]
  4296. iff %month == 2 then
  4297.  echo April
  4298.  if %sun ge 8 quit 1
  4299.  quit 0
  4300. elseiff %month == 3 then
  4301.  echo October
  4302.  if %sun ge 32 quit 0
  4303.  quit 1
  4304. else then
  4305.  echo Shouldn't reach here!
  4306.  quit 255
  4307. endiff
  4308.  
  4309.  -- beggarware sux : Aren't you glad you use 4DOS? Don't you wish everybody?
  4310. --- GEcho 1.00/beta+
  4311.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  4312.  
  4313. ------------------------------------------------------------------------
  4314.  
  4315. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4316.  
  4317.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/17/1992
  4318.   To: PHIL BEEBLE                     Num: 123        Date: 11/15/1992
  4319. From: MORRIS TURPIN                    Re:            Time:  2:09 pm
  4320. Subj: Oh yeah... I forgot...         Prvt: N          Read: N
  4321.  
  4322.  In a message dated Nov 14 at 00:44, Phil Beeble of 1:105/78
  4323.  wrote to all:
  4324.  
  4325.  PB> Does anyone know a way to keep the Keystack commands in their own 
  4326.  PB> DV window?
  4327.  
  4328.  PB> If I got the BBS running in the background, The Keystack commands 
  4329.  PB> that I have at the end of the Batch File all go into the forground 
  4330.  PB> window..
  4331.  
  4332.  PB> Anyone know how to keep this from happening?
  4333.  
  4334. I can't give you a definitive answer, Phil, but I don't have any problems
  4335. with KEYSTACK bleeding through between windows.  I'm running 4DOS ver 4.01
  4336. rev d, MS-DOS 5, DV 2.40 and QEMM 6.0 in ST:M mode.  In those btm files
  4337. requiring KEYSTACK I run the alias "kstack" where:
  4338.  
  4339.   KSTACK=iff %_dv eq 1 then^c:\4dos4\kstack.com /i^else^c:\qemm\loadhi 
  4340.   /r:2 c:\4dos4\kstack.com^endiff   (all on one line, of course)
  4341.  
  4342. I don't load KSTACK.COM before running DV.  This way, KEYSTACK is only
  4343. loaded inside each window that needs it.  If I am not in DV, (not normally
  4344. the case) KSTACK.COM is loaded high.
  4345.  
  4346. Another way that I have used with success is to use DGANSI outside of DV. 
  4347. DGANSI provides not only the ANSI driver but replaces KSTACK.COM as well. 
  4348. I stopped using DGANSI because the shared program portion, DGANSI.SHP,
  4349. slowed things down too much.  Right now I use ANSI.COM loaded by my
  4350. autoexec.bat file and load DVANSI in those windows that need it along with
  4351. KSTACK where required.
  4352.  
  4353. Hope this helps.
  4354.  
  4355.  
  4356. --- msged 2.07
  4357.  * Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
  4358.  
  4359. ------------------------------------------------------------------------
  4360.  
  4361. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4362.  
  4363.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/17/1992
  4364.   To: NEAL JACKSON                    Num: 109        Date: 11/14/1992
  4365. From: MAYNARD HOGG                     Re:            Time:  5:04 pm
  4366. Subj: Onceaweek                      Prvt: N          Read: N
  4367.  
  4368. NJ>Is there a way to add the %_dow[sun] variable to the Onceaday.btm
  4369.   >to make it run my files backup btm every Sunday when I boot up?
  4370.  
  4371. Why stop at Sunday? All it takes is a single line to add support for a
  4372. different batch for every day of the week: ONCE-SUN.BTM, ONCE-MON.BTM,
  4373. etc. <g>
  4374.  
  4375. >: ONCEADAY.BTM
  4376. >setlocal
  4377. >set lastdate=0
  4378. >iff exist %_boot:\onceaday.dat then
  4379. > set lastdate=%@line[%_boot:\onceaday.dat,0]
  4380. >endiff
  4381. >iff %@date[%_date] gt %lastdate then
  4382. > iff %time[%_time] gt %@time[06:00] then
  4383. >  call %&
  4384. >  echo %@date[%_date] ! %_boot:\onceaday.dat
  4385.    once-%_dow
  4386. > endiff
  4387. >endiff
  4388.  
  4389.  -- beggarware sux : 
  4390. --- GEcho 1.00/beta+
  4391.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  4392.  
  4393. ------------------------------------------------------------------------
  4394.  
  4395. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4396.  
  4397.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/19/1992
  4398.   To: MICHELANGELO JONES              Num: 89         Date: 11/14/1992
  4399. From: HENK SIMMELINK                   Re:            Time:  8:57 pm
  4400. Subj: 4DOS Wish List/Enhancemen      Prvt: N          Read: N
  4401.  
  4402. Hello Michelangelo!
  4403.  
  4404. Monday November 09 1992, Michelangelo Jones writes to Rex Conn:
  4405.  
  4406.  MJ>    1) Change TIMER so that STOP does not do a RESET, or at least give
  4407. the
  4408.  MJ> option. Example: you want to know how much time the system spends on a
  4409.  MJ> certain task over a week. I would LOVE to see this one.
  4410.  
  4411. I like your idea, but try this:
  4412. setlocal
  4413. set date=%_date
  4414. rem Next line is just for testing purposes
  4415. rem date 11-10-92
  4416. set d1=%@date[%_date]
  4417. rem date %date
  4418. set t1=%@time[%_time]
  4419. rem Replace next line with your command...
  4420. delay 1
  4421. set d2=%@date[%_date]
  4422. set t2=%@time[%_time]
  4423. iff exist d:\time.log then
  4424.     set t3=%@line[d:\time.log,0]
  4425. else
  4426.     set t3=0
  4427. endiff
  4428. set t4=%@eval[(%d2-%d1)*86400]
  4429. set t5=%@eval[%t2-%t1+%t3+%t4]
  4430. echo %t5|tee d:\time.log
  4431.  
  4432.  MJ>    2) Something in %@functions approximating the FindFirst/FindNext DOS
  4433.  MJ> functions, but with 4DOS wildcards? Usage: something approximating
  4434.  MJ> EX*.EXE[Tab][Return] in a batch file?
  4435.  
  4436. I might not understand your question completely, but is this not the "for ...
  4437. in (...) do ..." command you are asking for?
  4438.  
  4439.  MJ>    There've been times I've had to resort do doing a cls^dir and pulling
  4440.  MJ> the filenames off the screen. That's clumsy indeed. Give us a better
  4441. way.
  4442.  
  4443. Use |%@line[con,<linenumber>]
  4444.  
  4445.  MJ>    3) %_ANSI doesn't seem to work with ANSI.COM 1.3 from PC Mag. It
  4446. always
  4447.  MJ> reads 0. (Am I doing something wrong?)
  4448.  
  4449. Look under SETDOS /A ....
  4450.  
  4451. Yours sincerely,
  4452. Henk `HeSitated' Simmelink
  4453.  
  4454. --- GEcho 1.00/beta+
  4455.  * Origin:   (2:283/4.6)
  4456.  
  4457. ------------------------------------------------------------------------
  4458.  
  4459. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4460.  
  4461.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/21/1992
  4462.   To: MOLLY CHIN                      Num: 145        Date: 11/19/1992
  4463. From: JAY CURRY                        Re:            Time: 11:21 am
  4464. Subj: 1 MB DOC                       Prvt: N          Read: N
  4465.  
  4466.  -=> Quoting Molly Chin to All<=-
  4467.  
  4468.  
  4469.  MC> Is there anyway I can seperate the 1 DOC file into part 1 and part 2
  4470.  MC> or something like that?
  4471.  
  4472. I assume that you would like to view it with some type of editor.  My 
  4473. sugestion is to find out how large of a file your editor will handle, 
  4474. take that number divide it by 80, then run the dock file through a 
  4475. program like this.
  4476.  
  4477. ------------------
  4478. :: this is a program that will split a text file into multiple text 
  4479. :: files.
  4480.  
  4481. @echo off
  4482. if %2=`` goto command_error
  4483. if not exist %1 goto command_error
  4484.  
  4485.         setlocal
  4486.         set filecount=0
  4487.         set ext=tx
  4488.         set filename=%@NAME[%1]
  4489.         set line_count=0
  4490.         set max_line=%@lines[%1]
  4491. :top
  4492.         set loc_count=0
  4493.         set filecount=%@eval[%filecount+1]
  4494. :local        
  4495.         set line=%@line[%1,line_count]
  4496.         echo line >> %filename.%ext%filecount
  4497.         set loc_count=%@eval[loc_count+1]
  4498.         set line_count=%@eval[line_count+1]
  4499.         if line_count .ge. max_line goto done
  4500.         if line_count .lt. %2 goto local
  4501.         goto top
  4502.         
  4503. :command_error
  4504.  
  4505.         text
  4506.         the format for %0 is as follows:
  4507.         
  4508.             %0 filename.ext nn
  4509.             
  4510.         where filename.ext is replaced with the file name and extension 
  4511.         of the file that you wish to split, and nn is replaced with the 
  4512.         number of lines you wish to put into each of the output files.
  4513.         
  4514.         the output file will have the same file name as the input file, 
  4515.         but the extension will be TXn where n is replaced with a number 
  4516.         from 1 through 9.  if filenumber 1 is larger than your editor 
  4517.         can handle, gave that file a new name and re run this program on 
  4518.         it.
  4519.         
  4520.         endtext
  4521.  
  4522. :done
  4523.  
  4524. ---------------
  4525.  
  4526. Probably a faster way to look at the file in any case is to use the list 
  4527. command within 4dos. especially as the program I gave requires 4dos in 
  4528. order to operate correctly.  If you would like to just run the list 
  4529. command to view the file but do not wish to actually run 4dos as your 
  4530. command interpreter yet, you could use this command:
  4531.        
  4532.         4dos /c list 4dos.doc
  4533.      
  4534. you could try the program above the same way.
  4535.  
  4536. take care.
  4537.  
  4538. -Jay
  4539.  
  4540. ... My cat has 9 lives, but my frog croaks daily!
  4541. --- FMail 0.90
  4542.  * Origin: Le Cross Roads 608-788-8086 HST/DS LaCrosse, WI (1:2360/12.0)
  4543.  
  4544. ------------------------------------------------------------------------
  4545.  
  4546. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4547.  
  4548.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/21/1992
  4549.   To: KEITH D. CAMPBELL               Num: 124        Date: 11/18/1992
  4550. From: MAYNARD HOGG                     Re:            Time: 12:01 pm
  4551. Subj: New Btm?                       Prvt: N          Read: N
  4552.  
  4553. On 11-11-92, you wrote DAYTON LIVINGSTON re: new btm?
  4554.  
  4555. KDC>: for each previously hidden file, rehide it
  4556.    >for %file in (@\zorkjunk.h) do attrib /d /q +h %file
  4557.                   ^
  4558.  
  4559. After checking the online help, I was going to say: "The only problem
  4560. is that 4DOS FOR does not allow you to take lists from a file. It sure
  4561. would be nice if it did, though. <sigh>"
  4562.  
  4563. I am ECSTATIC to report, however, to report that I AM WRONG. FOR does!
  4564. How often I've wished for this capability! Now I can stop resorting to
  4565. such workarounds as
  4566.  
  4567. awk '{system("del " $1)}' filelist
  4568.  
  4569. Thanks for the tip!
  4570.  
  4571.  -- SPEED 1.10 [NR]: 
  4572. --- GEcho 1.00/beta+
  4573.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  4574.  
  4575. ------------------------------------------------------------------------
  4576.  
  4577. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4578.  
  4579.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/21/1992
  4580.   To: ALL                             Num: 106        Date: 11/16/1992
  4581. From: MICHAEL JERKOVIC                 Re:            Time:  9:21 pm
  4582. Subj: SPACE.BTM                      Prvt: N          Read: N
  4583.  
  4584. I uploaded a version of space.btm about a week ago but I think it never
  4585. made it past the local BBS.  Anyway I've made some fixes and here it
  4586. goes again:    ...Michael...
  4587. @echo off
  4588. ::SPACE.BTM    Michael Jerkovic (original and inspiration by Mark Stiebel)
  4589.  
  4590. setlocal
  4591. alias inc `set %1=%@eval[%[%1]+%2]`
  4592.  
  4593.  
  4594. :: Validate Input
  4595.  
  4596. set dsk=%@upper[%@substr[%1,0,1]]:
  4597. iff "%dsk"==":" then
  4598.    set dsk=%_disk:
  4599. elseiff %@ready[%dsk]==0 then goto usage
  4600. endiff
  4601.  
  4602.  
  4603. :: Disk usage in %
  4604. :: Note 1: that 1 byte is added to the total of disk used.
  4605. :: This avoids error caused by running space on an empty drive.
  4606. :: Note 2: The ratio has an error of +-0.01%
  4607.  
  4608. set ratio=%@eval[(%@diskused[%dsk,b]+1)/%@disktotal[%dsk,b]]
  4609. set up=%@eval[%@int[%@eval[%ratio*10000]]/100]
  4610. set fp=%@eval[100-%up]
  4611.  
  4612.  
  4613. :: Display Bar calculation
  4614. :: I have used a 50 char bar.  If you change the template, the "50"
  4615. :: should be changed to the length of the new bar.
  4616.  
  4617. set u_no=%@eval[%ratio*50]
  4618. set u_int=%@int[%u_no]
  4619. if "%@eval[%u_no-%u_int]" ge "0.5" inc u_int 1
  4620.  
  4621.  
  4622. :: Use screen handling.  Allows the use of an alias to show two or 
  4623. :: more drives, depending on how many lines your display is set up for.  
  4624. :: Eg for 25 line display use - "alias spaced=cls^for %a in (c d) space %a"
  4625.  
  4626. :: Make sure there is enough room on screen to display the output.
  4627. if %_row gt %@eval[%_rows-11] cls
  4628. :: Set the row indicator for the first line a variable is displayed.
  4629. set row=%@eval[%_row+2]
  4630.  
  4631.  
  4632. :: Use a template for the layout
  4633.  
  4634. text
  4635.  
  4636.              IMMMMMMMMMMMMMMMMMMMMMMMMMQMMMMMMMMMMMMMMMMMMMMMMMM;
  4637.              : Statistics for drive    3       SPACE.BTM        :
  4638.              GDDDDDDDDDDDDDDDDDDDDDDDDDADDDDDDDDDDDDDDDDDDDDDDDD:
  4639.              :   Total -                            100%        :
  4640.              :   Used  -                                        :
  4641.              :   Free  -                                        :
  4642.              GDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD6
  4643.              :yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy:
  4644.              HMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<
  4645. endtext
  4646.  
  4647.  
  4648. :: Stuff the templates face 
  4649.  
  4650. scrput %row 36 bri whi on %_bg %dsk
  4651.  
  4652. inc row 2
  4653. screen %row 26 %@disktotal[%dsk,K]K
  4654. screen %row 39 %@disktotal[%dsk,M]M
  4655.  
  4656. inc row 1
  4657. screen %row 26 %@diskused[%dsk,K]K
  4658. screen %row 39 %@diskused[%dsk,M]M
  4659. screen %row 52 %up%%%
  4660.  
  4661. inc row 1
  4662. screen %row 26 %@diskfree[%dsk,K]K
  4663. screen %row 39 %@diskfree[%dsk,M]M
  4664. screen %row 52 %fp%%%
  4665.  
  4666. inc row 2
  4667. if not %u_int==0 scrput %row 14 bri whi on %_bg %@substr[
  4668. [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[,0,%u_int]
  4669.  
  4670. inc row 2
  4671. screen %row 0
  4672.  
  4673. endlocal
  4674. quit
  4675.  
  4676.  
  4677. :usage
  4678. if %dsk==A: .or. %dsk==B: (beep^echo Drive %dsk is not ready.)
  4679. echo Usage: SPACE [drive]
  4680. echo        The default drive is current the drive.
  4681. endlocal
  4682.  
  4683. --- Squish/2 v1.01
  4684.  * Origin: The Lightning BBS - Don't Worry... Be Happy... (3:634/383)
  4685.  
  4686. ------------------------------------------------------------------------
  4687.  
  4688. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4689.  
  4690.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/23/1992
  4691.   To: ALL                             Num: 76         Date: 11/20/1992
  4692. From: SCOTT WUNSCH                     Re:            Time:  4:45 pm
  4693. Subj: SHELL.BTM... version 2.01      Prvt: N          Read: N
  4694.  
  4695. Salutations, All!
  4696.  
  4697.   Remember that SHELL.BTM that was originally posted by Mark Stiebel?  Well,
  4698. I think I have improved it.  And now I've even fixed my improvements ;).  By
  4699. using aliases to implement its ON, OFF and END commands, it no longer has to
  4700. do very much with the commands you enter.  Hopefully this will allow things
  4701. like variable functions and multiple commands (^) to work properly.  Anyhow,
  4702. here it is...
  4703.  
  4704. __________O_/___________________|  Cut  |___________________\_O__________
  4705.           O \                   | Here! |                   / O
  4706.  
  4707. @ECHO OFF
  4708. : * * * * * * * * * * [ SHELL.BTM  v2.01 ] * * * * * * * *
  4709. : *              4DOS Prompt Shell Batch File            *
  4710. : *                                                      *
  4711. : *  Originally by Mark Stiebel (3:633/159) -- 05/10/92  *
  4712. : * Revised by Scott Wunsch (1:140/23.1701) -- 19-Nov-92 *
  4713. : *                                                      *
  4714. : *  Description: SHELL.BTM will keep looping, updating  *
  4715. : *               the prompt every second or so.         *
  4716. : *               Commands and aliases are entered as    *
  4717. : *               usual, and are added to the command    *
  4718. : *               history.                               *
  4719. : *                                                      *
  4720. : *            Commands while in SHELL.BTM:              *
  4721. : *            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~              *
  4722. : *            ON - Turn the Status Line ON              *
  4723. : *           OFF - Turn the Status Line OFF             *
  4724. : *           END - Quit SHELL.BTM                       *
  4725. : *                                                      *
  4726. : *          Anything else will run as it would          *
  4727. : *           from a normal 4DOS command line.           *
  4728. : *                                                      *
  4729. : *                    New Features:                     *
  4730. : *                   ~~~~~~~~~~~~~~~                    *
  4731. : *  Handles multi-command  lines (using "^") and other  *
  4732. : *  embedded commands the previous version would choke  *
  4733. : *  on.   Special  commands  now  implemented  through  *
  4734. : *  aliases.                                            *
  4735. : *                                                      *
  4736. : * * * * * * * * * * * * * *[]* * * * * * * * * * * * * *
  4737. SETLOCAL
  4738. Set _SL=1
  4739. Set _FL=0
  4740. Set _ST=%@EVAL[%_ST+1]
  4741. SET CursorStyle=100:1
  4742. ALIAS ON=SET _SL=1
  4743. ALIAS OFF=SET _SL=0
  4744. ALIAS END=SET _GOOD=BYE
  4745.  
  4746. :MainLoop
  4747. Set _cmd=%@CHAR[32]
  4748. if %_CWDS == %cudir goto nochange
  4749. set cudir=%_CWDS
  4750. pushd
  4751. :nochange
  4752.  
  4753. IF '%_SL' == '0' GOTO NoStat
  4754. Setdos /s0:0
  4755.  
  4756. IFF %@DISKFREE[%_DISK:,M] LT 1 THEN^SET _CLR1=%@CHAR[27][0;31;46m^...
  4757. ...ELSE^SET _CLR1=%@CHAR[27][34m^ENDIFF
  4758. IFF %@DOSMEM[k] LT 400 THEN^SET _CLR2=%@CHAR[27][0;31;46m^ELSE^SET...
  4759. ... _CLR2=%@CHAR[27][34m^ENDIFF
  4760. IFF %@EMS[K] LT 500 THEN^SET _CLR3=%@CHAR[27][0;31;46m^ELSE^SET ...
  4761. ..._CLR3=%@CHAR[27][34m^ENDIFF
  4762. IFF %_SHELL GT 0 THEN^SET _CLR4=%@CHAR[27][0;31;46m^ELSE^SET ...
  4763. ..._CLR4=%@CHAR[27][34m^ENDIFF
  4764. IFF %_ST GT 1 THEN^SET _CLR5=%@CHAR[27][0;31;46m^ELSE^SET _CLR5=...
  4765. ...%@CHAR[27][34m^ENDIFF
  4766.  
  4767. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][K
  4768. echos %@CHAR[27][1;30m[%@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  4769. echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  4770. ...3,2]-1]],0,3]
  4771. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m][
  4772. echos %_DISK:%_CLR1%%@DISKFREE[%_DISK:,K]Kb%@CHAR[27][1;30m][Mem:%_CLR2%
  4773. echos %@DOSMEM[K]Kb%@CHAR[27][1;30m][EMS:%_CLR3%%@EMS[K]Kb
  4774. echos %@CHAR[27][1;30m][Extended:%@CHAR[27][34m%@EXTENDED[K]Kb
  4775. echos %@CHAR[27][1;30m][Shell:%_CLR4%%_SHELL%%@CHAR[27][1;30m/%_CLR5%
  4776. echos %@EVAL[%_ST-1]%@CHAR[27][1;30m]
  4777. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  4778. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  4779. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  4780. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  4781. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  4782. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  4783. echos %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`| >`
  4784. SETDOS /S100:1
  4785. GOTO SubLoop
  4786.  
  4787. :SubLoop
  4788. IF '%_SL' == '0' GOTO NoStat
  4789. Setdos /s0:0
  4790. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][1;30m[
  4791. echos %@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  4792. echos %@SUBSTR[%@LINE[{Month Filename Here!!!!},%@EVAL[%@SUBSTR[%_DATE,...
  4793. ...3,2]-1]],0,3]
  4794. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m]
  4795. echos %@CHAR[27][u%@CHAR[27][0;1;33m
  4796. IF %_FL == 0 (ECHOS %@CHAR[27][3D`|\>`%@CHAR[27][33m ^ SET _FL=1)
  4797. IF %_FL == 1 (ECHOS %@CHAR[27][3D`||>`%@CHAR[27][33m ^ SET _FL=2)
  4798. IF %_FL == 2 (ECHOS %@CHAR[27][3D`|/>`%@CHAR[27][33m ^ SET _FL=3)
  4799. IF %_FL == 3 (ECHOS %@CHAR[27][3D`|->`%@CHAR[27][34m ^ SET _FL=0)
  4800. SETDOS /S%CursorStyle
  4801. GOTO IP
  4802.  
  4803. :NoStat
  4804. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  4805. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  4806. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  4807. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  4808. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  4809. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  4810. ECHOS %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`|`
  4811. echos %@CHAR[240]`>`%@CHAR[27][34m
  4812.  
  4813. :IP
  4814. INPUT /w0 %%_cmd
  4815. :Execute
  4816. History /A %_cmd
  4817. CALL %_cmd
  4818. IF "%_GOOD" == "BYE" (SET _ST=%@EVAL[%_ST-1]^UNSET _GOOD^ENDLOCAL^QUIT)
  4819. IF "%@READSCR[0,0,1]" == "[" GOTO SubLoop
  4820. GOTO MainLoop
  4821.  
  4822. :NoHist
  4823. CALL %@SUBSTR[%_cmd,1]
  4824. GOTO MainLoop
  4825.  
  4826. _______O_/___________________|  Cut  |___________________\_O_______
  4827.        O \                   | Here! |                   / O
  4828.  
  4829.   That's it!  Now, it uses a file containing the names of all twelve months
  4830. to quickly display the month name in text form.  Just create a file listing
  4831. out the month names in full, and put its name in SHELL.BTM where indicated. 
  4832. Hope I got everything this time... ;)
  4833.  
  4834.                                                /\   LLAP...
  4835.                                              > \ cott \\'unsch <
  4836.                                               \/
  4837.  
  4838. --- GoldED 2.40
  4839.  * Origin: Good Point! -=- Regina, Sask, Canada -=- (1:140/23.1701)
  4840.  
  4841.  
  4842.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  4843.                         >> Continued in next message <<
  4844.  
  4845. ------------------------------------------------------------------------
  4846.  
  4847. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4848.  
  4849.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/25/1992
  4850.   To: MIKE DUNNAGAN                   Num: 90         Date: 11/22/1992
  4851. From: MAYNARD HOGG                     Re:            Time: 10:10 am
  4852. Subj: Space.Btm             1/2      Prvt: N          Read: N
  4853.  
  4854. @echo off
  4855. rem SPACE.BTM
  4856. goto start
  4857.  
  4858. Sample output:
  4859.  
  4860.                                                              
  4861.    Statistics for drive C:  SPACE.BTM - Mark Stiebel (c)1992 
  4862.                                                              
  4863.    Total space : 32580 Kbytes  - 31 Mbytes   - 100%          
  4864.    Used space  : 25934 Kbytes  - 25 Mbytes   - 80%            <---
  4865.    Free space  : 6646 Kbytes   - 6 Mbytes    - 20%           
  4866.                                                              
  4867.                                                              
  4868.                                                              
  4869.  
  4870. Returns (via ERRORLEVEL or 4DOS' %?):
  4871.  
  4872. * the percentage in the middle line (indicated with an arrow)
  4873.  
  4874. * 255 if the disk is not ready
  4875.  
  4876. * 0 for the help mode
  4877.  
  4878. Date: 10-31-92
  4879. From: MARK STIEBEL
  4880.  
  4881. Once again, prompted by a post by someone else in this echo (Saul
  4882. Levy), I have used their idea of a batch file to show drive info.
  4883.  
  4884. SPACE.BTM shows the total, free and used space and percentages of a
  4885. drive, and draws a usage graph as well. It might take a few seconds
  4886. the first time you run it on a certain drive while 4DOS logs that
  4887. drive, but such is life.
  4888.  
  4889. :start
  4890. :: Author : Mark Stiebel,  3:633/159 (The Gate - (03)879-9082)
  4891. :: Written : 31/10/92
  4892. ::
  4893. :: Please feel free to distribute and modify
  4894. ::
  4895. :: There are a few things that could be modified and made better, but as
  4896. :: long as you specify a correct disk name, nothing can go wrong.
  4897. ::
  4898. :: Have fun.
  4899.  
  4900. :: Check if the user wants help - not that he'd need it.
  4901. IF %@SUBSTR[%1,1,1] == h GOTO Usage
  4902. IF %@SUBSTR[%1,1,1] == ? GOTO Usage
  4903. IF %@SUBSTR[%1,0,1] == h GOTO Usage
  4904. IF %@SUBSTR[%1,0,1] == ? GOTO Usage
  4905.  
  4906. :: Get rid of the cursor, set values, and if no drive was specified,
  4907. :: use the default drive instead.
  4908. setlocal
  4909. unalias set >&nul
  4910. set wob=bri green on %_bg
  4911. set bwob=bri red on %_bg
  4912. if isalias curson SETDOS /s0:0
  4913. Set c=4
  4914. Set drive=%1:
  4915. IF %1. == . SET drive=%_DISK:
  4916.  
  4917. :: If the selected drive is ready, work out how many blocks will be
  4918. :: needed (for the usage graph), and if not to go to the error message.
  4919. CLS
  4920. IF %@READY[%drive] != 1 GOTO NotReady
  4921.  
  4922. set dt=%@disktotal[%drive,b]
  4923. set du=%@diskused[%drive,b]/%dt
  4924. if /%2/ != // set du=%2
  4925. Set x=%@EVAL[%du*60]
  4926. set du=%@EVAL[%du*100]
  4927. ::don't want to worry about special case of 100% just yet
  4928. :(too hard to program)
  4929. if %x ge 60 set x=59.99
  4930. if %du ge 100 set du=99.99
  4931.  
  4932. :: Draw the boxes and display the numerical stats.
  4933. DRAWBOX 1 30 3 63 1 %wob
  4934. DRAWBOX 3 3 7 63 1 %wob
  4935. DRAWBOX 1 3 9 63 2 %wob
  4936.  
  4937. SCRPUT 2 31 %wob SPACE.BTM - Mark Stiebel (c)1992
  4938. SCRPUT 2 6 %wob Statistics for drive %@UPPER[%drive]
  4939. SCRPUT 4 6 %wob Total space : %@DISKTOTAL[%drive,K] Kbytes
  4940. SCRPUT 5 6 %wob Used space  : %@DISKUSED[%drive,K] Kbytes
  4941. SCRPUT 6 6 %wob Free space  : %@DISKFREE[%drive,K] Kbytes
  4942. SCRPUT 4 34 %wob - %@DISKTOTAL[%drive,M] Mbytes
  4943. SCRPUT 5 34 %wob - %@DISKUSED[%drive,M] Mbytes
  4944. SCRPUT 6 34 %wob - %@DISKFREE[%drive,M] Mbytes
  4945. SCRPUT 4 48 %wob - 100`%`
  4946. SCRPUT 5 48 %wob - %@int[%du]`%`
  4947. ::                 ^^^^^^^^^^Never greater than 99% here.
  4948. SCRPUT 6 48 %wob - %@INT[%@EVAL[(%@DISKFREE[%drive,b]/%dt)*100+0.5]]`%`
  4949.    [ Continued In Next Message... ]
  4950.  
  4951.  
  4952.  -- SPEED 1.10 [NR]: 
  4953. --- GEcho 1.00/beta+
  4954.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  4955.  
  4956. ------------------------------------------------------------------------
  4957.  
  4958. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  4959.  
  4960.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/25/1992
  4961.   To: MIKE DUNNAGAN                   Num: 91         Date: 11/22/1992
  4962. From: MAYNARD HOGG                     Re:            Time: 10:10 am
  4963. Subj: Space.Btm             2/2      Prvt: N          Read: N
  4964.  
  4965.    [ ...Continued From Previous Message ]
  4966.  
  4967.  
  4968. ::print scale first
  4969. set outc=%@char[250]
  4970. set outc=%outc%%outc%%outc%%outc%%outc%%@char[179]
  4971. :dots
  4972. set outc=%outc%%outc%
  4973. if %@len[%outc] lt 59 goto dots
  4974. set outc=%@substr[%outc,0,59]
  4975. SCRPUT 8 4 %wob %outc
  4976. ::screen 0 0 ^pause
  4977.  
  4978. set ptr=4
  4979. set c=%@int[%@eval[%du/10]]^if %c lt 1 goto bar20
  4980. ::    ^^^^^^^^^^^^^^^^^^^^^max = 9
  4981. ::now is the time to round off %du
  4982. set du=%@int[%@eval[%du+0.5]]
  4983. ::     ^^^^^^^^^^^^^^^^^^^^^^round up (even to 100%)
  4984.  
  4985. set outc=%@char[177]
  4986. ::six blocks for each 10% on scale
  4987. set outc=%outc%%outc%%outc%%outc%%outc%%@char[179]
  4988.  
  4989. ::print bar in 10% blocks
  4990. :bar10
  4991. ::pc is the current per cent for SCRPUT command below
  4992. set pc=%@eval[(10 - %c)*10]
  4993. ::print remainder
  4994. :bar15
  4995. scrput 5 50 %bwob% %pc`% `
  4996. SCRPUT 8 %ptr %bwob %outc
  4997. ::delay 2 ticks
  4998. beep 10 4
  4999.  
  5000. set ptr=%@eval[%ptr + %@len[%outc]]
  5001. set c=%@eval[%c - 1]
  5002. if %c gt 0 goto bar10
  5003. if %c eq 0 (
  5004.   set outc=%@substr[%outc,0,%@eval[%x %% 6]]
  5005. rem                         ^^^^^^^^^^^^^^^
  5006. rem                         yields 5 for 99.99% case
  5007.   set c=0^set pc=%du
  5008.   if /%outc/ != // goto bar15
  5009. )
  5010.  
  5011. :bar20
  5012.  
  5013. Goto End
  5014.  
  5015. :: The 'Drive Not Ready' error message
  5016. :NotReady
  5017. echo.
  5018. echo ERROR: Drive %drive is not ready. Please insert a disk or make sure
  5019. echo        that the hard drive is operational.
  5020. echo.
  5021. set du=255
  5022. goto end
  5023.  
  5024. :: The 'Help' message
  5025. :Usage
  5026. TEXT
  5027.  
  5028. USAGE:
  5029.       SPACE <drive>
  5030.  
  5031.       Where <drive> is the drive letter. This may be specified in
  5032.       upper or lower case.
  5033.       If no drive is specified, SPACE.BTM will use the current drive.
  5034.  
  5035. ENDTEXT
  5036. QUIT 0
  5037.  
  5038. :: unset all the environment variables used, restore the cursor,
  5039. :: and put it just below the output from the .BTM file.
  5040. :End
  5041. SCREEN 12 0
  5042. if isalias curson curson
  5043. quit %du
  5044.  
  5045.  -- SPEED 1.10 [NR]: 
  5046. --- GEcho 1.00/beta+
  5047.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  5048.  
  5049. ------------------------------------------------------------------------
  5050.  
  5051. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5052.  
  5053.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5054.   To: ALL                             Num: 108        Date: 11/24/1992
  5055. From: TONY DUNLAP                      Re:            Time:  6:38 pm
  5056. Subj: 4fill                          Prvt: N          Read: N
  5057.  
  5058. (BTM follows next message)
  5059. 4FILL.BTM
  5060.  
  5061. This BTM will attempt to "BEST FIT" files from a source directory
  5062. to a target disk. Copy and Move are supported as well as format
  5063. between disks if desired. The DESCRIPTIONS are also copied/moved.
  5064.  
  5065. Initial Release 2-11-1992
  5066.   Change 3-29-1992
  5067.      -Shortened filenames, label names and messages to reduce the
  5068.       size of the btm to less than 2048 bytes (1 cluster on most
  5069.       hard drives)
  5070.  
  5071.   Change 11-24-1992
  5072.      -Changed input routine to use @select.
  5073.  
  5074. PLEASE READ NOTES at the end of this document.
  5075.  
  5076. Questions? Suggestions?
  5077.  
  5078. Tony Dunlap
  5079. 296 Elm St.
  5080. Chillicothe, Ohio  45601
  5081.  
  5082. Or send NETMAIL to Fidonet 1:2220/30
  5083. The latest version will always be available for F'req there as 4FILL.ARJ
  5084. or
  5085.  
  5086. Available via FREQ or first time callers from The Outer Limits I (1:2220/10)
  5087. at
  5088. 1-614-772-5520 (USR Dual Standard) or The Outer Limits II (1:2220/15) at
  5089. 1-614-772-5583 (USR 14.4 HST). (For F'req, magic name is 4FILL)
  5090.  
  5091. Any ideas or suggestions are urged and welcome.
  5092.  
  5093. This BTM requires 4DOS 4.xx
  5094. An ANSI driver is recommended.
  5095.  
  5096. It is suggested that you keep the original BTM intact and do modifications
  5097. to a copy.
  5098.  
  5099. Variable names used in this BTM (they are all released when the btm has
  5100. finished and won't conflict with yours even if you are using the same name)
  5101.  
  5102. Cfil, Cfre, Dz, Hman, Op, Tman
  5103.  
  5104. Temporary files used in this BTM
  5105.  
  5106. 4f#1.4f, 4f#2.4f
  5107.  
  5108. Files are created in the root directory of the Current drive, then
  5109. are erased when the BTM is finished. Thus, THIS BTM WILL NOT RUN FROM THE
  5110. ROOT DIRECTORY OF ANY DRIVE. It is suggested that it be put in your PATH.
  5111.  
  5112. Usage:
  5113.  
  5114. It is recommended that 4fill.btm be in a subdirectory listed in your PATH
  5115. statement and that you CD to the directory where the files you want to
  5116. copy are located. You may choose to rename 4FILL.BTM to some other name.
  5117. (I call it FILL.BTM myself)
  5118.  
  5119. 4FILL sourcefiles targetdrive: [/M]
  5120.  
  5121. where "sourcefiles" is a valid filespec (wildcards are allowed)
  5122.  and
  5123. "targetdrive" is a valid drive (don't forget the colon)
  5124.  
  5125. /M is optional and means to MOVE files to the target rather than
  5126.    copying (which is the default)
  5127.  
  5128.  
  5129. Notes:
  5130.  
  5131. 1. One place where you might want to modify the btm is the line for the
  5132.    format option. Look for the following line:
  5133.  
  5134.    if %dz EQ F format %2   (line 34 as distributed)
  5135.  
  5136.    and replace "format %2" with your desired command line.
  5137.  
  5138. 2. I have trimmed the btm down pretty good but if you need to trim off
  5139.    a few more bytes (say, to make a better help screen) you can delete
  5140.    the 2 space indentation on commands after "iff" and "else".
  5141.  
  5142.  
  5143. Errors:
  5144.  
  5145. There are 2 error conditions that you need to watch out for.
  5146.  
  5147. 1. Root directory full:
  5148.  
  5149.    360k and 720k diskettes can hold only 112 entries (files) in the
  5150.    Root Directory. If you are copying many small files (less than 3000
  5151.    bytes) you may run into this problem. A way around it is to modify the
  5152.    program to create and copy to a subdirectory on the target floppy.
  5153.  
  5154.    I leave this as an exercise to the user as it will increase the size
  5155.    of the btm substantially.
  5156.  
  5157.  
  5158.  
  5159. 2. Description file couldn't be updated:
  5160.  
  5161.    This is very rare (in fact, I couldn't produce this error). There is
  5162.    a slight possibility that during the copy operation, there will be
  5163.    room enough for the next file but not enough for the description. I
  5164.    know of no way to fix this. In fact I'm not even sure that it will
  5165.    be detected. I assume if it happens the copy will return a non-zero
  5166.    errorlevel but I'm not sure since it's never happened.
  5167.  
  5168. --- GEcho 1.00
  5169.  * Origin: DISCOVER (1:2220/30.1)
  5170.  
  5171. ------------------------------------------------------------------------
  5172.  
  5173. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5174.  
  5175.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5176.   To: ALL                             Num: 109        Date: 11/24/1992
  5177. From: TONY DUNLAP                      Re:            Time:  6:42 pm
  5178. Subj: 4fill                          Prvt: N          Read: N
  5179.  
  5180. (Remove line numbers before using)
  5181.  
  5182.    1 : @echo off
  5183.    2 : if "%_cwp" NE "\" .AND. "%@substr[%2,1,1]" EQ ":" goto go
  5184.    3 : echo.
  5185.    4 : echo Syntax: %0 sourcefiles targetdrive: [/M]
  5186.    5 : text
  5187.    6 :
  5188.    7 : /M means move, instead of copy
  5189.    8 :
  5190.    9 : endtext
  5191.   10 : echo %0 must be run from a SUBDIRECTORY!
  5192.   11 : quit
  5193.   12 : :err
  5194.   13 : echo ERROR! Root directory full or Description not updated.
  5195.   14 : quit
  5196.   15 : :go
  5197.   16 : setlocal
  5198.   17 : cls
  5199.   18 : *del \4f#*.4f>& nul
  5200.   19 : if "%3" EQ "/M" set op=move
  5201.   20 : if "%3" NE "/M" set op=copy
  5202.   21 : *dir /o-s /a-d-r-h /b %1>\4f#1.4f
  5203.   22 : :L1
  5204.   23 : text | set dz=%@substr[%@select[con,18,10,24,42,Insert Disk in Drive
  5205. %2 and...],0]
  5206.   24 : Copy Files
  5207.   25 : Directory of Target
  5208.   26 : Format Target
  5209.   27 : List remaining files
  5210.   28 : endtext
  5211.   29 : if "%dz" EQ "" goto DONE
  5212.   30 : set dz=%@substr[%dz,0,1]
  5213.   31 : echo.
  5214.   32 : if %dz EQ L (*type \4f#1.4f /p^echo %@eval[%@lines[\4f#1.4f]%+1]%
  5215. files remaining^goto L1)
  5216.   33 : if %dz EQ D (*dir %2 /4^pause^goto L1)
  5217.   34 : if %dz EQ F format %2
  5218.   35 : if %@ready[%2] NE 1 (echo Drive error or not formatted^goto L1)
  5219.   36 : iff %@diskused[%2] NE 0 then
  5220.   37 :   echo DISK %2 is not empty.%@char[7]
  5221.   38 :   inkey /k"YN" Do you want to erase %2 (Y/N)? %%dz
  5222.   39 :   if %dz EQ y (*dir %2 /4 ^ echo.^echos ERASING-^*del /s/x/q %2\*.*)
  5223.   40 : endiff
  5224.   41 : iff %@diskfree[%2,b] LT %@filesize[%@line[\4f#1.4f,0]] then
  5225.   42 :   echo %@line[\4f#1.4f,0]too big for %2
  5226.   43 :   inkey /k"CE" Continue or Exit(C/E)?%@char[7] %%dz
  5227.   44 :   if %dz EQ E goto done
  5228.   45 : endiff
  5229.   46 : echo.
  5230.   47 : set hman=%@lines[\4f#1.4f]
  5231.   48 : set tman=0
  5232.   49 : text
  5233.   50 : Processing   Bytes        File        File
  5234.   51 : File #       Free         Name        Size
  5235.   52 :
  5236.   53 : endtext
  5237.   54 : :L2
  5238.   55 : set cfil=%@line[\4f#1.4f,%tman]
  5239.   56 : set cfre=%@diskfree[%2,b]
  5240.   57 : screen %_row %@eval[5-%@len[%@eval[%tman+1]]] %@eval[%tman+1]
  5241.   58 : iff %@eval[%@filesize[%cfil,b]] LE %cfre then
  5242.   59 :   screen %_row %@eval[19-%@len[%cfre]] %cfre
  5243.   60 :   screen %_row %@eval[34-%@len[%cfil]] %cfil
  5244.   61 :   screen %_row %@eval[43-%@len[%@filesize[%cfil,b]]]
  5245. %@filesize[%cfil,b]
  5246.   62 :   echo.
  5247.   63 :   *%op %cfil %2>&nul
  5248.   64 :   if %_? NE 0 goto err
  5249.   65 : else
  5250.   66 :   echo %cfil>>\4f#2.4f
  5251.   67 : endiff
  5252.   68 : set tman=%@eval[%tman+1]
  5253.   69 : if %hman GE %tman goto L2
  5254.   70 : :done
  5255.   71 : *del \4f#1.4f>&nul
  5256.   72 : ren \4f#2.4f \4f#1.4f>&nul
  5257.   73 : if exist \4f#1.4f goto L1
  5258.   74 : echo !! DONE !!
  5259.  
  5260. --- GEcho 1.00
  5261.  * Origin: DISCOVER (1:2220/30.1)
  5262.  
  5263. ------------------------------------------------------------------------
  5264.  
  5265. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5266.  
  5267.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5268.   To: RICHARD ROBERTSON               Num: 85         Date: 11/25/1992
  5269. From: MAYNARD HOGG                     Re:            Time:  1:51 pm
  5270. Subj: 4Piano.Btm                     Prvt: N          Read: N
  5271.  
  5272. @echo off
  5273. goto begin
  5274.  
  5275. Date: 10-30-92
  5276. From: RICHARD ROBERTSON
  5277.  
  5278. I hope there hasn't been anything like this posted here recently
  5279. - apologies in advance - this echo is sooo busy <g>. Anyway my
  5280. kids liked it. Watch out for commas, apostrophies and spaces -
  5281. they are not trapped. The BTM is mostly hard coded - you could
  5282. add a record and playback routines if you had the mind to.
  5283. Enjoy...
  5284.  
  5285. ::preliminaries by Maynard Hogg, Tokyo 11/25/92
  5286. :begin
  5287. setlocal
  5288. unalias set >& nul
  5289. set oldfg=%_fg
  5290. set oldbg=%_bg
  5291. set c1=whi on blu
  5292. set c2=blu on whi
  5293. set c3=cya on bla
  5294. set c4=red on whi
  5295. set keymap1=QWERTYUIASDFGHJKZXCVBNM.
  5296. set keymap2=CDEFGABCCDEFGABCCDEFGABC
  5297. set freqs=2093 2349 2637 2794 3136 3520 3951 4186
  5298. set l=8
  5299.  
  5300. cls
  5301. for %keyp in (q w e r t y u i) gosub doit
  5302.  
  5303. ::
  5304. :: 4PIANO.BTM   version 1.0
  5305. :: 29th October 1992 Richard Robertson
  5306. :: 3:640/556.6@Fidonet 61:6700/160@Worldnet
  5307. ::
  5308. inkey /k"12345678" Note duration (1-8) %%l
  5309. cls %c3
  5310. screen 1 0
  5311. text
  5312.  ***********4PIANO***********
  5313.  *-esc-                     *
  5314.  * Low   C D E F G A B C    *
  5315.  *                          *
  5316.  *       A S D F G H J K    *
  5317.  * Med   C D E F G A B C    *
  5318.  *                          *
  5319.  *       Z X C V B N M .    *
  5320.  * High  C D E F G A B C    *
  5321.  *                          *
  5322.  * V1.0 Richard Robertson   *
  5323.  * V1.1 Maynard Hogg        *
  5324.  ****************************
  5325. endtext
  5326. scrput 2 3 bri %c1 ESC
  5327.  
  5328. :loop
  5329. screen 15 0
  5330. ::inkey /k"%keymap1[ESC]" %%keyp >nul
  5331. inkey %%keyp >nul
  5332. if "%keyp" == "%@char[27]" goto done
  5333. gosub doit
  5334. if /%keyno/ == /-1/ goto loop
  5335. goto loop
  5336.  
  5337. :done
  5338. for %keyp in (e e e q) gosub doit
  5339. cls %oldfg on %oldbg border %oldbg
  5340. quit
  5341.  
  5342. :doit
  5343. ::Calculate parameters
  5344. set keyp=%@upper[%keyp]
  5345. set keyno=%@index[%keymap1,%keyp]
  5346. if /%keyno/ == /-1/ return
  5347. set n=%@substr[%keymap2,%keyno,1]
  5348. set r=%@int[%@eval[%keyno/8]]
  5349. set c=%@eval[%keyno %% 8]
  5350. set div=%@substr[/4/4,%@eval[%r*2]]
  5351. set f=%@int[%@eval[%@word[%c,%freqs]%div+0.5]]
  5352. set r=%@eval[%r * 3 + 4]
  5353. set c=%@eval[%c * 2 + 9]
  5354. scrput %r %c %c4 %n
  5355. beep %f %l
  5356. scrput %r %c %c3 %n
  5357. return
  5358.  * SPEED 1.10 [NR] * 
  5359.  * SPEED 1.10 [NR] * 
  5360. --- GEcho 1.00/beta+
  5361.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  5362.  
  5363. ------------------------------------------------------------------------
  5364.  
  5365. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5366.  
  5367.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5368.   To: DAYTON LIVINGSTON               Num: 33         Date: 11/22/1992
  5369. From: ERA ERIKSSON                     Re:            Time:  4:17 am
  5370. Subj: Disktot.Btm                    Prvt: N          Read: N
  5371.  
  5372.  * Quoting Dayton Livingston (1:114/148) to Saul Levy on 14 Nov 1992:
  5373.  SL>> Adding commas to a .BTM output is a mess!  The way I see it
  5374.  SL>> now (not having done it yet!) is to split up each number
  5375.  SL>> into three digits, add a comma after each and continue to
  5376.  > If you come up with something useful, please post it.  I fooled
  5377.  > around a bit with it, but it's really a hassle - especially since
  5378.  
  5379. Just whipped up this for the fun of it. Not thoroughly tested (and just look
  5380. at the time, omigod :-) but maybe it will help someone.
  5381.  
  5382. This would normally not be a batch file in itself -- just put it in a
  5383. subroutine whenever you need it.
  5384.  
  5385. Pardon the short variable names. N is for Number, O is simply N+1, D is for
  5386. delimiter.
  5387.  
  5388. Note that space is the delimiter of choice over here. Change to comma for
  5389. your Angloamerican philistine conventions.
  5390.  
  5391. /* era */
  5392.  
  5393.  
  5394. :: NUM.BTM
  5395. :: era eriksson  2:220/851.95  22.11.92
  5396. @echo off
  5397. setlocal
  5398. :: Change this to your local delimiter
  5399. set d=` `
  5400. set n=
  5401. set o=
  5402. :: You wouldn't use INPUT in a subroutine. Just put the original value
  5403. ::  into n (and don't "set n=" above) and see what happens.
  5404. input Let's see a number: %%n
  5405. :lloopp
  5406. iff %@len[%n] gt 3 then
  5407.    set o=%d%%@substr[%n,2,-3]%o
  5408.    set n=%@substr[%n,0,%@eval[%@len[%n]-3]]
  5409. else
  5410.    echo %n%%o
  5411. :: This would be "return" if used as a subroutine. You may also want
  5412. ::  to top it off with "set n=%n%%o" to get the final output into the
  5413. ::  variable you originally fed the routine.
  5414.    quit
  5415. endiff
  5416. goto lloopp
  5417.  
  5418. ---
  5419.  * Origin:   root:V9zG.Iy.9ndH2:0:0:era, o . ,,:/:/bin/bash   (2:220/851.95)
  5420.  
  5421. ------------------------------------------------------------------------
  5422.  
  5423. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5424.  
  5425.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5426.   To: ALL                             Num: 117        Date: 11/26/1992
  5427. From: STEVE LAMB                       Re:            Time:  9:12 am
  5428. Subj: Nice Prompt                    Prvt: N          Read: N
  5429.  
  5430.     Here's a nice prompt I just got done perfecting:
  5431.  
  5432. set prompt=`$e[34m[$e[31mTime: $e[32m$t$e[34m$b$e[31mDate:
  5433. $e[32m$d$e[34m]$_[$e[31mDOS: $e[32m%@do
  5434. smem[K]k$e[34m$b$e[31mEMS:$e[32m%@ems[K]k$e[34m]$_[$e[36m$xc:  %@diskfree[c:,
  5435. K]k free$e[34m]$_[$e[36m$xd:  %@diskfree[d:,K]k free$e[34m]$_$e[m$p$g`
  5436.  
  5437.     This will show you the current time/date, DOS/EMS free, the directory
  5438. that C: and D: are logged to and how much space is on each drive.  Of course
  5439. you'll need to put it all back together.
  5440.  
  5441. --- GEcho 1.00/beta+
  5442.  * Origin: Generic Origin Line  (916) 363-1424 (1:203/1369)
  5443.  
  5444. ------------------------------------------------------------------------
  5445.  
  5446. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5447.  
  5448.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5449.   To: BARRY GELMAN                    Num: 94         Date: 11/20/1992
  5450. From: HUGO LANDSMAN                    Re:            Time:  6:30 pm
  5451. Subj: Setting file date with 4       Prvt: N          Read: N
  5452.  
  5453. Hi Barry,
  5454.  
  5455. 10 Nov 1992 00:36, Barry Gelman (1:244/112) wrote to Dave M. Walker:
  5456.  
  5457.  BG> Oh Rex!  <nudge> <nudge> Howz about making "touch" an internal 
  5458.  BG> command?
  5459.  
  5460. You don't have it already?  alias touch=for %f in (%&) (iff exist %f then ^
  5461. copy/b %f+nul ^ else ^ echos>%f ^ endiff)
  5462.  
  5463. regards,
  5464.          hugo
  5465. --- FastEcho 1.21/b5
  5466.  * Origin: st. anna pbbs, nijmegen nl (2:512/154.5@fidonet.org)
  5467.  
  5468. ------------------------------------------------------------------------
  5469.  
  5470. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5471.  
  5472.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5473.   To: ALL                             Num: 112        Date: 11/25/1992
  5474. From: SCOTT WUNSCH                     Re:            Time:  5:23 pm
  5475. Subj: SHELL.BTM... Hopefully fi      Prvt: N          Read: N
  5476.  
  5477. Salutations, All!
  5478.  
  5479.   Well, I'm getting kind of tired of seeing everyone talking about how
  5480. they can't seem to get my SHELL.BTM to work right, so here is (another
  5481. :() repost, that  should work.  I  have  gotten rid of  the MONTHS.DAT
  5482. file, and gone the way of Maynard Hogg in using %@WORD to pick a month
  5483. (you'll see it in the .BTM).  The one double-percent I forgot has been
  5484. amended.
  5485.   I also improved the cursor restoration  stuff, thanks to Jasen Betts
  5486. for that.
  5487.   Oh yes, and most importantly, my date format is DD-MM-YY, so some of
  5488. the date stuff  using %@SUBSTR may work a little funny  on your system
  5489. if you use a different format - you'll just have to play with it.
  5490.  
  5491. _______O_/___________________|  Cut  |___________________\_O_______
  5492.        O \                   | Here! |                   / O
  5493.  
  5494. @ECHO OFF
  5495. : * * * * * * * * * * [ SHELL.BTM v2.02 ] * * * * * * * * *
  5496. : *               4DOS Prompt Shell Batch File            *
  5497. : *                                                       *
  5498. : *   Originally by Mark Stiebel (3:633/159) -- 05/10/92  *
  5499. : *  Revised by Scott Wunsch (1:140/23.1701) -- 25-Nov-92 *
  5500. : *     Special thanks to Maynard Hogg and Jasen Betts    *
  5501. : *                                                       *
  5502. : *   Description: SHELL.BTM will keep looping, updating  *
  5503. : *                the prompt every second or so.         *
  5504. : *                Commands and aliases are entered as    *
  5505. : *                usual, and are added to the command    *
  5506. : *                history.                               *
  5507. : *                                                       *
  5508. : *             Commands while in SHELL.BTM:              *
  5509. : *             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~              *
  5510. : *             ON - Turn the Status Line ON              *
  5511. : *            OFF - Turn the Status Line OFF             *
  5512. : *            END - Quit SHELL.BTM                       *
  5513. : *                                                       *
  5514. : *           Anything else will run as it would          *
  5515. : *            from a normal 4DOS command line.           *
  5516. : *                                                       *
  5517. : *                     New Features:                     *
  5518. : *                    ~~~~~~~~~~~~~~~                    *
  5519. : *   Handles multi-command  lines (using "^") and other  *
  5520. : *   embedded commands the previous version would choke  *
  5521. : *   on.   Special  commands  now  implemented  through  *
  5522. : *   aliases.  Plus, it should work! ;)                  *
  5523. : *                                                       *
  5524. : * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  5525. SETLOCAL
  5526. Set _SL=1
  5527. Set _FL=0
  5528. Set _ST=%@EVAL[%_ST+1]
  5529. SETDOS | SET Cursor=%@SUBSTR[%@LINE[CON,8],18]:%@SUBSTR[%@LINE[CON,0],14]
  5530. ALIAS ON=SET _SL=1
  5531. ALIAS OFF=SET _SL=0
  5532. ALIAS END=SET _GOOD=BYE
  5533.  
  5534. :MainLoop
  5535. Set _cmd=%@CHAR[32]
  5536. if %_CWDS == %cudir goto nochange
  5537. set cudir=%_CWDS
  5538. pushd
  5539. :nochange
  5540.  
  5541. IF '%_SL' == '0' GOTO NoStat
  5542. Setdos /s0:0
  5543.  
  5544. IFF %@DISKFREE[%_DISK:,M] LT 1 THEN^SET _CLR1=%@CHAR[27][0;31;46m^...
  5545. ...ELSE^SET _CLR1=%@CHAR[27][34m^ENDIFF
  5546. IFF %@DOSMEM[k] LT 400 THEN^SET _CLR2=%@CHAR[27][0;31;46m^ELSE^SET...
  5547. ... _CLR2=%@CHAR[27][34m^ENDIFF
  5548. IFF %@EMS[K] LT 500 THEN^SET _CLR3=%@CHAR[27][0;31;46m^ELSE^SET ...
  5549. ..._CLR3=%@CHAR[27][34m^ENDIFF
  5550. IFF %_SHELL GT 0 THEN^SET _CLR4=%@CHAR[27][0;31;46m^ELSE^SET ...
  5551. ..._CLR4=%@CHAR[27][34m^ENDIFF
  5552. IFF %_ST GT 1 THEN^SET _CLR5=%@CHAR[27][0;31;46m^ELSE^SET _CLR5=...
  5553. ...%@CHAR[27][34m^ENDIFF
  5554.  
  5555. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][K
  5556. echos %@CHAR[27][1;30m[%@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  5557. echos %@WORD[%@SUBSTR[%_DATE,3,2],x Jan Feb Mar Apr Jun Jul Aug Sep...
  5558. ... Nov Dec]
  5559. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m][
  5560. echos %_DISK:%_CLR1%%@DISKFREE[%_DISK:,K]Kb%@CHAR[27][1;30m][Mem:%_CLR2%
  5561. echos %@DOSMEM[K]Kb%@CHAR[27][1;30m][EMS:%_CLR3%%@EMS[K]Kb
  5562. echos %@CHAR[27][1;30m][Extended:%@CHAR[27][34m%@EXTENDED[K]Kb
  5563. echos %@CHAR[27][1;30m][Shell:%_CLR4%%_SHELL%%@CHAR[27][1;30m/%_CLR5%
  5564. echos %@EVAL[%_ST-1]%@CHAR[27][1;30m]
  5565. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  5566. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  5567. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  5568. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  5569. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  5570. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  5571. echos %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`| >`
  5572. SETDOS /S100:1
  5573. GOTO SubLoop
  5574.  
  5575. :SubLoop
  5576. IF '%_SL' == '0' GOTO NoStat
  5577. Setdos /s0:0
  5578. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][1;30m[
  5579. echos %@CHAR[27][34m%@SUBSTR[%_DATE,0,2]/
  5580. echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  5581. ...3,2]-1]],0,3]
  5582. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m]
  5583. echos %@CHAR[27][u%@CHAR[27][0;1;33m
  5584. IF %_FL == 0 (ECHOS %@CHAR[27][3D`|\>`%@CHAR[27][33m ^ SET _FL=1)
  5585. IF %_FL == 1 (ECHOS %@CHAR[27][3D`||>`%@CHAR[27][33m ^ SET _FL=2)
  5586. IF %_FL == 2 (ECHOS %@CHAR[27][3D`|/>`%@CHAR[27][33m ^ SET _FL=3)
  5587. IF %_FL == 3 (ECHOS %@CHAR[27][3D`|->`%@CHAR[27][34m ^ SET _FL=0)
  5588. SETDOS /S%Cursor
  5589. GOTO IP
  5590.  
  5591. :NoStat
  5592. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  5593. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  5594. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  5595. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  5596. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  5597. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  5598. ECHOS %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`|`
  5599. echos %@CHAR[240]`>`%@CHAR[27][34m
  5600.  
  5601. :IP
  5602. INPUT /w0 %%_cmd
  5603. :Execute
  5604. History /A %_cmd
  5605. CALL %_cmd
  5606. IF "%_GOOD" == "BYE" (SET _ST=%@EVAL[%_ST-1]^UNSET _GOOD^ENDLOCAL^QUIT
  5607. IF "%@READSCR[0,0,1]" == "[" GOTO SubLoop
  5608. GOTO MainLoop
  5609.  
  5610. :NoHist
  5611. CALL %@SUBSTR[%_cmd,1]
  5612. GOTO MainLoop
  5613.  
  5614. _______O_/___________________|  Cut  |___________________\_O_______
  5615.        O \                   | Here! |                   / O
  5616.  
  5617.   And that better be all! ;)
  5618.  
  5619.  
  5620.                                                /\   LLAP...
  5621.                                              > \ cott \\'unsch <
  5622.  
  5623.  
  5624.            >> Message length exceeded, split by WILDMAIL! v2.04 <<
  5625.                         >> Continued in next message <<
  5626.  
  5627. ------------------------------------------------------------------------
  5628.  
  5629. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5630.  
  5631.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5632.   To: SCOTT WUNSCH                    Num: 77         Date: 11/21/1992
  5633. From: DAYTON LIVINGSTON                Re:            Time: 11:21 am
  5634. Subj: SHELL.BTM... version 2.0       Prvt: N          Read: N
  5635.  
  5636. SW>> echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  5637.  
  5638. MD> What is this?
  5639.  
  5640. SW> Oops.  Forgot to tell you about that one.  I found the
  5641. SW> quickest way to come up with the month name in text form was
  5642. SW> to put all twelve of the months in a text file and to use
  5643. SW> %@LINE to extract the one I wanted.  The %@SUBSTR just trims
  5644. SW> it down to size for an abbrieviation.  Just adjust the
  5645. SW> pathname and make a text file with all of the months listed
  5646. SW> in it, one line after the other.
  5647.  
  5648. Yeah, some of us firured that one out.  I modified mine to keep
  5649. it all in one file (don't recall how, but I think it was
  5650. something like using:
  5651.     %@SUBSTR[JanFebMar...,%@EVAL[%@INDEX...]*3],3]
  5652. or some such.
  5653.  
  5654. - Dayton
  5655.  
  5656.  * OLX 994 * All stressed up and nowhere to go.
  5657.  
  5658. --- Maximus 2.00
  5659.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  5660.  
  5661. ------------------------------------------------------------------------
  5662.  
  5663. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5664.  
  5665.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5666.   To: MIKE DUNNAGAN                   Num: 45         Date: 11/20/1992
  5667. From: JOHN VAN GRINSVEN                Re:            Time:  2:15 pm
  5668. Subj: SHELL.BTM... version 2.00      Prvt: N          Read: N
  5669.  
  5670. Hi Mike,
  5671.  
  5672. Saturday November 14 1992, Mike Dunnagan writes to Scott Wunsch:
  5673.  
  5674.  SW>> echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[%_DATE,...
  5675.  
  5676.  MD> What is this?
  5677.  
  5678. A way to get the month display as Nov. I do it this way...
  5679.  
  5680. echos %@WORD[%@EVAL[%@SUBSTR[%_DATE,0,2] -1],Jan Feb Mar...
  5681. ... Apr May Jun Jul Aug Sep Oct Nov Dec]
  5682.  
  5683.  SW>> echos %_DISK:%_CLR1%@DISKFREE[%_DISK:,K]Kb%@CHAR[27][1;30m][Mem:%_CLR2%
  5684.  
  5685. Change it to: %_DISK:%_CLR1%%@DISKF... (double the %)
  5686. 4DOS thinks the % from %@DI.. is a terminator to %_CLR1 i.e. %_CLR1%. Then it
  5687. runs into @DIS.. and does not recognize the command.
  5688.  
  5689. Gr.  __o
  5690. John o/--
  5691.  
  5692. ---
  5693.  * Origin:  The Frenz Experiment  (2:500/131.2053)
  5694.  
  5695. ------------------------------------------------------------------------
  5696.  
  5697. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5698.  
  5699.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5700.   To: MIKE DUNNAGAN                   Num: 101        Date: 11/25/1992
  5701. From: DAVE MUNHOLLON                   Re:            Time:  5:23 pm
  5702. Subj: SHELL.BTM... version 2.01      Prvt: N          Read: N
  5703.  
  5704. Monday November 23 1992, Mike Dunnagan writes to Scott Wunsch:
  5705.  
  5706.  SW> echos %@SUBSTR[%@LINE[{Month Filename
  5707. Here!!!!},%@EVAL[%@SUBSTR[%_DATE,...
  5708.  SW> ...3,2]-1]],0,3]
  5709.  
  5710.        ^^^
  5711.  
  5712. Mike, if your using standard US dates (mm/dd/yy), you need to change the 3 to
  5713. a zero.  The "**E" your seeing is the first three characters of the EOF
  5714. marker (**EOF**).
  5715.  
  5716. The Month.dat should be:
  5717.  
  5718. Jan
  5719. Feb
  5720. Mar
  5721. etc....
  5722.  
  5723.                                -=*Dave
  5724.  
  5725. --- DB 1.50/003118 & GoldED 2.40+
  5726.  
  5727. ---
  5728.  * Origin: Jackpot!! (1:128/86)
  5729.  
  5730. ------------------------------------------------------------------------
  5731.  
  5732. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5733.  
  5734.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5735.   To: KRIS VERBEECK                   Num: 93         Date: 11/20/1992
  5736. From: HUGO LANDSMAN                    Re:            Time:  6:07 pm
  5737. Subj: Some Useful Aliases...         Prvt: N          Read: N
  5738.  
  5739. Hi Kris,
  5740.  
  5741. 10 Nov 1992 17:42, Kris Verbeeck (2:292/877.5@fidonet.org) wrote to All:
  5742.  
  5743.  KV> alias up=`cd ..`
  5744.  
  5745. alias down=`dir/bad>&>nul|cd %@line[con,0]`
  5746. alias next=`set _d=%@substr[%_cwd,%@len[%@path[%_cwd]]]^set
  5747. _f=%@unique[%temp]^dir../bad>&>nul>!%_f^for %f in (@%_f) (iff %f == %_d
  5748. then^set _n=1^elseiff %_n=1 then^cd %f^set _n=2^endiff)^del/q %_f^unset _f _n
  5749. _d`
  5750.  
  5751. groeten,
  5752.          hugo
  5753.  
  5754. --- FastEcho 1.21/b5
  5755.  * Origin: st. anna pbbs, nijmegen nl (2:512/154.5@fidonet.org)
  5756.  
  5757. ------------------------------------------------------------------------
  5758.  
  5759. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5760.  
  5761.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5762.   To: MIKE DUNNAGAN                   Num: 64         Date: 11/20/1992
  5763. From: DAYTON LIVINGSTON                Re:            Time: 11:20 am
  5764. Subj: Space.Btm                      Prvt: N          Read: N
  5765.  
  5766. MD> Replying to _Dayton Livingston_ on the subject of Space.Btm:
  5767. MD> Could you post your version please. The original one I got
  5768. MD> here was missing some things in some of the SCRPUT lines. I
  5769. MD> don't know enought about it to hack it. Thanks.
  5770.  
  5771. No problem-o (below), though I think I've seen some variations
  5772. posted as well that you might find more interesting.  Please note
  5773. that this has been modified so that no line is longer that 56
  5774. characters, so all lines ending with "..." must be joined to the
  5775. following lines (which begin with "...".  Also high-ASCII
  5776. characters have been changed to low-ASCII for transmission in the
  5777. net.  You may want to change them.
  5778.  
  5779. SPACE.BTM (as modified by Dayton Livingston):
  5780. ___--8<----- CUT HERE -----8<-----
  5781. @ECHO OFF
  5782. :: Author : Mark Stiebel,  3:633/159
  5783. :: (The Gate - (03)879-9082) Written : 31/10/92
  5784. ::
  5785. :: Please feel free to distribute and modify
  5786. ::
  5787. :: There are a few things that could be modified and made better,
  5788. :: but as long as you specify a correct disk name, nothing can
  5789. :: go wrong. Have fun.
  5790.  
  5791. :: Check if the user wants help - not that he'd need it.
  5792. IF %@SUBSTR[%1,1,1] == h GOTO Usage
  5793. IF %@SUBSTR[%1,1,1] == ? GOTO Usage
  5794. IF %@SUBSTR[%1,0,1] == h GOTO Usage
  5795. IF %@SUBSTR[%1,0,1] == ? GOTO Usage
  5796.  
  5797. :: Get rid of the cursor, set values, and if no drive was
  5798. :: specified, use the default drive instead.
  5799. REM SETDOS /s0:0
  5800. Set c=4
  5801. Set drive=%1:
  5802. IF %1. == . SET drive=%_DISK:
  5803.  
  5804. :: If the selected drive is ready, work out how many blocks will
  5805. :: be needed (for the usage graph), and if not to go to the error
  5806. :: message.
  5807. CLS
  5808. IFF %@READY[%drive] == 1 THEN (
  5809.     Set x=%@INT[%@EVAL[(%@DISKUSED[%drive,b]/%@DISKTOTAL...
  5810. ...[%drive,b])*61]]
  5811.     )
  5812. ELSE GOTO NotReady
  5813. ENDIFF
  5814.  
  5815. :: Draw the boxes and display the numerical stats.
  5816.  
  5817. DRAWBOX 1 3 9 63 2 whi on bla FILL BLA
  5818. DRAWBOX 1 30 3 63 1 whi on bla
  5819. DRAWBOX 3 3 7 63 1 whi on bla
  5820. DRAWBOX 1 3 9 63 2 whi on bla
  5821.  
  5822. SCRPUT 2 31 whi on bla SPACE.BTM - Mark Stiebel (c)1992
  5823. SCRPUT 2 6 whi on bla Statistics for drive %@UPPER[%drive]
  5824. SCRPUT 4 6 whi on bla Total space : %@DISKTOTAL[%drive,K] Kbytes
  5825. SCRPUT 5 6 whi on bla Used space  : %@DISKUSED[%drive,K] Kbytes
  5826. SCRPUT 6 6 whi on bla Free space  : %@DISKFREE[%drive,K] Kbytes
  5827. SCRPUT 4 34 whi on bla - %@DISKTOTAL[%drive,M] Mbytes
  5828. SCRPUT 5 34 whi on bla - %@DISKUSED[%drive,M] Mbytes
  5829. SCRPUT 6 34 whi on bla - %@DISKFREE[%drive,M] Mbytes
  5830. SCRPUT 4 48 whi on bla - 100`%`
  5831. SCRPUT 5 48 whi on bla - %@INT[%@EVAL[(%@DISKUSED...
  5832. ...[%drive,b] / %@DISKTOTAL[%drive,b]) * 100]]`%`
  5833. SCRPUT 6 48 whi on bla - %@INT[%@EVAL[(%@DISKFREE...
  5834. ...[%drive,b] / %@DISKTOTAL[%drive,b]) * 100]]`%`
  5835.  
  5836. :: Draw the usage bar. If anyone can find a quicker way
  5837. :: (preferably instantaeous) way to do this, can you please give
  5838. :: me a buzz.
  5839.  
  5840. REM :Bar
  5841. REM IFF %x gt %c THEN SCRPUT 8 %c bri whi on bla *
  5842. REM ELSE IFF %x le %c THEN SCRPUT 8 %c bri whi on bla -
  5843. REM ENDIFF
  5844. REM Set c=%@EVAL[%c +1]
  5845. REM IF %c lt 63 GOTO Bar
  5846. SET
  5847. b=%@SUBSTR[**************************************************...
  5848. ...*********,0,%@EVAL[%x-4]]
  5849. SET b=%b%%@SUBSTR[-------------------------------------------...
  5850. ...--------------,%@EVAL[%x-4]]
  5851. SCRPUT 8 5 WHI ON BLA %b ^ UNSET b
  5852. Goto End
  5853.  
  5854.  
  5855. :: The 'Drive Not Ready' error message
  5856. :NotReady
  5857. echo.
  5858. echo ERROR: Drive %drive Is not ready. Please insert a disk
  5859. echo        or make sure that the hard drive is operational.
  5860. echo.
  5861. SETDOS /s10:100
  5862. QUIT
  5863.  
  5864. :: The 'Help' message
  5865. :Usage
  5866. TEXT
  5867.  
  5868. USAGE:
  5869.       SPACE <drive>
  5870.  
  5871.       Where <drive> is the drive letter. This may be specified
  5872.       in upper or lower case.
  5873.       SPACE.BTM will use current drive if none specified.
  5874. ENDTEXT
  5875. QUIT
  5876.  
  5877. :: unset all the environment variables used, restore the cursor,
  5878. :: and put it just below the output from the .BTM file.
  5879. :End
  5880. SCREEN 12 0
  5881. UNSET c x drive
  5882. REM SETDOS /s10:100
  5883. ___--8<----- CUT HERE -----8<-----
  5884.  
  5885. - Dayton
  5886.  
  5887.  * OLX 994 * Psychic convention cancelled due to unforeseen problems.
  5888.  
  5889. --- Maximus 2.00
  5890.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  5891.  
  5892. ------------------------------------------------------------------------
  5893.  
  5894. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  5895.  
  5896.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  5897.   To: BILL-STEVEN KERR                Num: 107        Date: 11/21/1992
  5898. From: KLAUS KETTNER                    Re:            Time:  3:12 pm
  5899. Subj: SPACE.BTM                      Prvt: N          Read: N
  5900.  
  5901. Hi Bill-Steven !
  5902.  
  5903.   I like your Batch a lot! It looks great - I've just added some lines,
  5904.   so it shows now the amount of free DOS Memory (percentage of 640 kB).
  5905.   Sorry  for  the German translation, but I didn't like to translate it
  5906.   back to English.....
  5907.  
  5908.  
  5909. ________________o
  5910. /_______________C_U_T__H_E_R_E______________________________
  5911.                 o \
  5912. @ECHO OFF
  5913. SETLOCAL
  5914. CLS
  5915. SCREEN 19 0
  5916.  
  5917. DRAWBOX 0 0 22 79 0 BRI BLA ON WHI FILL WHI
  5918. SCRPUT 22 1 BRI BLA ON WHI
  5919. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5920. SCRPUT 0 1 BRI WHI ON WHI
  5921. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5922. SCRPUT 0 78 BRI BLA ON WHI ▀
  5923. DRAWVLINE 0 0 23 0 BRI WHI ON WHI
  5924. SCRPUT 22 1 BRI WHI ON WHI ▄
  5925.  
  5926. DRAWBOX 2 2 14 37 0 RED ON WHI FILL RED
  5927. DRAWHLINE 1 2 11 0 RED ON WHI
  5928. DRAWHLINE 15 4 35 0 BRI BLA ON WHI
  5929. DRAWVLINE 3 38 13 0 BRI BLA ON WHI
  5930. DRAWVLINE 3 39 13 0 BRI BLA ON WHI
  5931.  
  5932. DRAWBOX 18 2 20 75 0 GRE ON WHI FILL GRE
  5933. DRAWHLINE 17 2 11 0 GRE ON WHI
  5934. DRAWHLINE 21 4 74 0 BRI BLA ON WHI
  5935. DRAWVLINE 19 76 2 0 BRI BLA ON WHI
  5936. DRAWVLINE 19 77 2 0 BRI BLA ON WHI
  5937.  
  5938. DRAWBOX 2 42 6 75 0 BLU ON WHI FILL BLU
  5939. DRAWHLINE 1 42 11 0 BLU ON WHI
  5940. DRAWHLINE 7 44 34 0 BRI BLA ON WHI
  5941. DRAWVLINE 3 76 5 0 BRI BLA ON WHI
  5942. DRAWVLINE 3 77 5 0 BRI BLA ON WHI
  5943.  
  5944. DRAWBOX 10 42 14 75 0 MAG ON WHI FILL MAG
  5945. DRAWHLINE 9 42 11 0 MAG ON WHI
  5946. DRAWHLINE 15 44 34 0 BRI BLA ON WHI
  5947. DRAWVLINE 11 76 5 0 BRI BLA ON WHI
  5948. DRAWVLINE 11 77 5 0 BRI BLA ON WHI
  5949.  
  5950. SCRPUT 1 4 BRI WHI ON RED GENERAL
  5951. SCRPUT 17 4 BRI WHI ON GRE MEMORY
  5952. SCRPUT 1 44 BRI WHI ON BLU DISK C:
  5953. SCRPUT 9 44 BRI WHI ON MAG DISK D:
  5954.  
  5955. SCRPUT 3 4 BRI WHI ON RED 4DOS Version      :   %_4ver
  5956. SCRPUT 4 4 BRI WHI ON RED DOS Version       :   %_dosver
  5957. SCRPUT 5 4 BRI WHI ON RED Alias-Platz       :   %_alias b
  5958. SCRPUT 6 4 BRI WHI ON RED Environment-Platz :   %_env b
  5959. SCRPUT 7 4 BRI WHI ON RED Uhrzeit           :   %_time
  5960. SCRPUT 8 4 BRI WHI ON RED System-Datum      :   %_date
  5961. SCRPUT 9 4 BRI WHI ON RED Wochentag         :   %_dow
  5962. SCRPUT 10 4 BRI WHI ON RED Monitor Typ       :   %_monitor
  5963. SCRPUT 11 4 BRI WHI ON RED Video Karte       :   %@UPPER[%_video]
  5964. IFF "%_NDP"=="387" .AND. "%_CPU"=="486" THEN
  5965.         SCRPUT 12 4 BRI WHI ON RED Co-Prozessor      :   487
  5966. ELSE
  5967.         SCRPUT 12 4 BRI WHI ON RED Co-Prozessor      :   %_ndp
  5968. ENDIFF
  5969. SCRPUT 13 4 BRI WHI ON RED Shell Level       :   %_shell
  5970.  
  5971. SCRPUT 3 44 BLA ON BLU ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  5972. SCRPUT 11 44 BLA ON MAG ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  5973. SCRPUT 19 4 BLA ON GRE
  5974. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  5975. SCRPUT 5 44 BRI WHI ON BLU Belegt:  %@diskused[c:,K] von %@disktotal[c:,K] Kb
  5976. SCRPUT 13 44 BRI WHI ON MAG Belegt:  %@diskused[d:,K] von %@disktotal[d:,K]
  5977. Kb
  5978.  
  5979. DRAWHLINE 3 44
  5980. %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[c:]/%@DISKTOTAL[c:])*100]]/10)*3]] 0
  5981. WHI ON WHI
  5982. DRAWHLINE 11 44
  5983. %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[d:]/%@DISKTOTAL[d:])*100]]/10)*3]] 0
  5984. WHI ON WHI
  5985. DRAWHLINE 19 4  %@INT[%@EVAL[(%@INT[%@EVAL[(%@DOSMEM[k]/640)*100]]/10)*7.1]]
  5986. 0 WHI ON WHI
  5987. SCRPUT 3 45 BRI WHI ON WHI
  5988. %@INT[%@EVAL[(%@DISKUSED[c:]/%@DISKTOTAL[c:])*100]]%
  5989. SCRPUT 11 45 BRI WHI ON WHI
  5990. %@INT[%@EVAL[(%@DISKUSED[d:]/%@DISKTOTAL[d:])*100]]%
  5991. SCRPUT 19 5 BRI WHI ON WHI %@INT[%@EVAL[(%@DOSMEM[k]/640)*100]]%
  5992.  
  5993. SCRPUT 3 47 BRI WHI ON WHI `%`
  5994. SCRPUT 11 47 BRI WHI ON WHI `%`
  5995. SCRPUT 19 7 BRI WHI ON WHI `%`
  5996. SCRPUT 19 9 BRI WHI ON WHI (%@dosmem[b] Byte)
  5997.  
  5998. :EXIT
  5999. SCREEN 23 0
  6000. ENDLOCAL
  6001. ________________o
  6002. /_______________C_U_T__H_E_R_E______________________________
  6003.                 o \
  6004.  
  6005.      Salve .....
  6006.            KLAUS
  6007.  
  6008.  
  6009.  
  6010. --- Yuppie! v2.10
  6011.  * Origin: IF %@EVAL[2+2] NE 4 THEN SET WINDOWS=TRUE... [4.01D] (2:2400/26.6)
  6012.  
  6013. ------------------------------------------------------------------------
  6014.  
  6015. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6016.  
  6017.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/28/1992
  6018.   To: MAYNARD HOGG                    Num: 95         Date: 11/20/1992
  6019. From: HUGO LANDSMAN                    Re:            Time:  6:31 pm
  6020. Subj: Space.Btm             1/2      Prvt: N          Read: N
  6021.  
  6022. Hi Maynard,
  6023.  
  6024. 06 Nov 1992 16:31, Maynard Hogg (6:730/9) wrote to Mark Stiebel:
  6025.  
  6026.  >MS>::SETDOS /s0:0
  6027.  
  6028.  MH> At this point, you should save the current cursor shape, but I've
  6029.  MH> forgotten how. <sigh> I've therefore disabled it so that others don't
  6030.  
  6031. You again? ;-)  Watch:
  6032.  
  6033.     SETLOCAL
  6034.     SETDOS | FIND "CURSOR" >tmpfile
  6035.     SET /r tmpfile ^ rem silly SET won't read stdin :-(
  6036.     DEL /q tmpfile
  6037.     : insert batch file here
  6038.     :END
  6039.     SETDOS /s%[CURSOR OVERSTRIKE]:%[CURSOR INSERT]
  6040.     ENDLOCAL
  6041.  
  6042. regards,
  6043.          hugo
  6044.  
  6045. --- FastEcho 1.21/b5
  6046.  * Origin: st. anna pbbs, nijmegen nl (2:512/154.5@fidonet.org)
  6047.  
  6048. ------------------------------------------------------------------------
  6049.  
  6050. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6051.  
  6052.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/30/1992
  6053.   To: ALL                             Num: 78         Date: 11/26/1992
  6054. From: PHI NGUYEN                       Re:            Time:  8:42 pm
  6055. Subj: Filter.btm                     Prvt: N          Read: N
  6056.  
  6057.  :: FILTER.BTM - Use to delete identical filenames entries.
  6058.  ::
  6059.  :: Created by Phi P. Nguyen on 11/10/1992
  6060.  ::
  6061.  :: Usage: I have 2 file lists from two BBSes and I don't
  6062.  ::        want to download the same file from both boards.
  6063.  ::        This BTM will do just that. Since both listings
  6064.  ::        will be combine into one, make sure you know
  6065.  ::        the different between lines from two listings.
  6066.  ::
  6067.  :: Note:  This BTM makes use of DOS' SORT command. Replace
  6068.  ::        'c:\dos\sort' with whatever.
  6069.  ::
  6070.  ::        Also, If there are chars inside the listings such
  6071.  ::        as commas which 4DOS' function 'substr' chokes on
  6072.  ::        then you will see a 'Syntax Error' on the screen.
  6073.  ::
  6074.  ::        This BTM will only comparing the first 12 chars.
  6075.  ::        Or it can be set via environment variable Length
  6076.  ::
  6077.  @echo off
  6078.  iff '%1'=='' then
  6079.    text
  6080.  
  6081.  FILTER.BTM V1.0 - Phi P. Nguyen 1992
  6082.  
  6083.  Syntax: FILTER File_to_be-filter
  6084.  
  6085.     or  FILTER File1 File2 Output_File
  6086.  
  6087.   where  File1 and File2 will be combined into Output_File
  6088.          and Output_File will be filtered. If Output_File is
  6089.          not specified then OUTPUT.TXT will be used.
  6090.  
  6091.  
  6092.    endtext
  6093.    quit
  6094.  else iff '%2' NE '' then
  6095.  
  6096.    iff not exist %1 .OR. not exist %2 then
  6097.      echoError! Input file(s) does not exist!
  6098.      quit
  6099.    endiff
  6100.  
  6101.    iff '%3'=='' then
  6102.      set Output=OUTPUT.TXT
  6103.    else
  6104.      set Output=%3
  6105.    endiff
  6106.  
  6107.    iff exist %Output then
  6108.      echoWarning: File --%Output-- existed!
  6109.      set key=N
  6110.      inkey /k"YN" Do you want to overwrite this ...
  6111.      ...file? (Y/N) %%key
  6112.      if '%key'=='N' (unset /q key Output^quit)
  6113.      set key=
  6114.    endiff
  6115.  
  6116.  
  6117. -----Continue Next Message
  6118.  
  6119.  
  6120. --- TosScan 1.00
  6121.  * Origin: Carolina Forum (704)568-1663 *IBM/AMIGA/MAC* 1031 Meg (1:379/10)
  6122.  
  6123. ------------------------------------------------------------------------
  6124.  
  6125. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6126.  
  6127.  BBS: ESCMAIL         Conference: 4dos            Imported: 11/30/1992
  6128.   To: ALL                             Num: 79         Date: 11/26/1992
  6129. From: PHI NGUYEN                       Re:            Time:  8:43 pm
  6130. Subj: Filter.btm continue            Prvt: N          Read: N
  6131.  
  6132.    copy /q %1 + %2 %Output
  6133.    %0 %Output
  6134.    quit
  6135.  
  6136.  else
  6137.    iff not exist %1 then
  6138.      echoError! File --%1-- does not exist!
  6139.      unset /q Output
  6140.      quit
  6141.    endiff
  6142.  
  6143.    echo.
  6144.    echo FILTER.BTM V1.0 - Phi P. Nguyen 1992
  6145.    echo.
  6146.    set Output=%@unique[%_CWD]
  6147.    if '%Length'=='' set Length=12
  6148.    set Max=%@LINES[%1]
  6149.    echo File: %@UPPER[%1]    Size: %@FILESIZE[%1,b] by...
  6150.    ...tes    Lines: %@EVAL[%Max + 1]
  6151.    echo.
  6152.    set i=0
  6153.    set Count=0
  6154.    set Old_File=*
  6155.    echos Sorting.....
  6156.    c:\dos\sort < %1 > %Output
  6157.    iff '%1' NE 'OUTPUT.TXT' then
  6158.      if exist %@name[%1].BAK del /q %@name[%1].BAK
  6159.      ren /q %1 %@name[%1].BAK
  6160.    else
  6161.      del /q %1
  6162.    endiff
  6163.    ren /q %Output %1
  6164.  
  6165.    echo Begin filtering....
  6166.  :Loop
  6167.    iff %i LE %Max then
  6168.      set Cur_Line=%@line[%1, %i]
  6169.      set Filename=%@lower[%@substr...
  6170.      ...[%Cur_Line, 0, %Length]]
  6171.      iff %Filename NE %Old_File then
  6172.        echo %Cur_Line >> %Output
  6173.        set Old_File=%Filename
  6174.        echos o
  6175.      else
  6176.        echos .
  6177.        set Count=%@EVAL[%Count + 1]
  6178.      endiff
  6179.  
  6180.      set i=%@eval[%i + 1]
  6181.      goto Loop
  6182.    else
  6183.      del /q %1
  6184.      ren /q %Output %1
  6185.      echo.
  6186.      echo.
  6187.      echo Result: %Count duplicated entries found ...
  6188.      ...and removed.
  6189.      echo.
  6190.      unset /q Output Old_File Cur_Line i Max ...
  6191.      ...Filename Length Count
  6192.      quit
  6193.    endiff
  6194.  
  6195.  :: End-of-File
  6196.  
  6197.  
  6198. --- TosScan 1.00
  6199.  * Origin: Carolina Forum (704)568-1663 *IBM/AMIGA/MAC* 1031 Meg (1:379/10)
  6200.  
  6201. ------------------------------------------------------------------------
  6202.  
  6203. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6204.  
  6205.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/01/1992
  6206.   To: DAYTON LIVINGSTON               Num: 111        Date: 11/28/1992
  6207. From: DOUGLAS KING                     Re:            Time:  1:12 am
  6208. Subj: Boxer                          Prvt: N          Read: N
  6209.  
  6210. DL=>The only difference I saw there was that it allowed vertical
  6211. DL=>splits as well as horizontal ones.  Otherwise, QEdit does the
  6212. DL=>same thing (only it doesn't waste space with all the fancy lines
  6213. DL=>used as separators).
  6214.  
  6215. In Boxer v4.0 you  can  tell  it  to omit the fancy windows.
  6216. Unless you're using a rodent they are not too  helpful.    I
  6217. use  a  rodent  for  block  marking and for little used menu
  6218. functions.
  6219.  
  6220. DL=>Can't relate to that at all.  I WANT my backups in the same
  6221. DL=>directory, not hidden away somewhere where I'll rarely remember
  6222. DL=>to go to and delete them.  But then, I also have QEdit prompt me
  6223. DL=>after every use about what I want to do with the backup, and I
  6224. DL=>back up my hard drive on a near-nightly basis.  (Automated.)
  6225.  
  6226. If you  want  the  backups  in  the  current  directory just
  6227. eliminate the boxer backup  dir.    It  will  then  put  all
  6228. backups in the same dir as the original file.
  6229.  
  6230. DL=>Yup!  Thanks for the tip.  It's quite a good program, just not
  6231. DL=>suited to my personal tastes.  Wouldn't mind switching myself
  6232. DL=>except for the limited macros, the slow read/write & execution
  6233. DL=>times, and the putting of tabs into text files that I'm going to
  6234. DL=>want to run as BTM's (I think that last one is fixable - not
  6235. DL=>sure).  Might even be able to live with only 26 macros if he
  6236. DL=>could speed it up, put in the scrolling and the large file
  6237. DL=>capability.  I'll be keeping my eye out for newer versions now!
  6238.  
  6239. I find the new boxer to be quicker.  It takes only about 5.5
  6240. seconds to load in a 165k file and exit.  I also have a slow
  6241. hard drive.  eg.  It takes 5.85 seconds to load telemate and
  6242. exit it.  I don't find a mere 26 macros limiting when I have
  6243. 26 clipboards at my disposal.
  6244.  
  6245. The scrolling is there now and large files can be taken care
  6246. of also.   BTW, I've NEVER seen a 1Mb .btm file.   [grin] If
  6247. you  find  the  new and improved [advertising anyone?][grin]
  6248. boxer is for you,  great.   If you don't, I'm just glad that
  6249. Qedit works so well for  you.    Have a great time.   For me
  6250. it's real nice to find this editor.   I see you're using OLX
  6251. for a reader.   Write a .btm to access Boxer instead of  the
  6252. built  in  editor.   I find boxer to be much nicer as a mail
  6253. editor.   I just hit ^S and  it runs a spelling check then I
  6254. reformat the text to take care of any  line  length  changes
  6255. made by share spell.  Here's my .btm file:
  6256.  
  6257. :: B.BTM
  6258. :: access Boxer from 1st reader or Offline 1.42.
  6259. pushd
  6260. keystack /w12 @99 /w2 "s" /w2 13 /w2 @98 /w2 @97 "60" 13
  6261. b.exe %&
  6262. popd
  6263.  
  6264. real simple, but it works wonders.
  6265.  
  6266.  * 1st 1.01 #742 + Support your right to keep and arm bears!
  6267.  
  6268. --- Maximus 2.01wb
  6269.  * Origin: C.R.I.M.E. BBS Mail Central of Ottawa, CANADA (1:163/407)
  6270.  
  6271. ------------------------------------------------------------------------
  6272.  
  6273. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6274.  
  6275.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/01/1992
  6276.   To: ARTTU YL{RAKKOLA                Num: 124        Date: 11/25/1992
  6277. From: JASEN BETTS                      Re:            Time: 12:20 am
  6278. Subj: Group Describe                 Prvt: N          Read: N
  6279.  
  6280.  AY>> PROG1.ZIP .. PROG4.ZIP
  6281.  AY>> And I wanted to describe them:
  6282.  AY>> PROG1.ZIP Program 1/4
  6283.  
  6284.  TS>> For %a in (1 2 3 4) *describe prog%a.zip "Program %a/4"
  6285.  
  6286.  AY> Thanks, but that works only if there's 4 packets.
  6287.  
  6288. I'm sure you can see what to change :-) or has it got to be automated??
  6289. try this.
  6290.  
  6291.  :::: numdesc.btm ::::makes numbered descriptions:::
  6292.  @echo  off
  6293.  if %# gt 1 goto main
  6294.  
  6295.  echo %@name[%0]
  6296.  echo  generates numbered descriptions for multipart archives etc
  6297.  echo useage:
  6298.  echo    %@name[%0] Wildspec description
  6299.  
  6300.  endtext
  6301.  quit
  6302.  
  6303.  :main
  6304.  setlocal
  6305.  dir /b %1| set numprogs=%@lines[con] ^ rem count the files
  6306.  set numprogs=%@eval[%numprogs%+1]
  6307.  
  6308.  set counter=1
  6309.  
  6310.  dir /b %1 | for %q in (%1) do (
  6311.         describe %@line[con,0] "%2& %counter%/%numprogs%"
  6312.         set counter=%@eval[%counter%+1]
  6313.         )
  6314.  
  6315.  endlocal
  6316.  ::::::::::::::::::::::::::::::::::::::::::::::::::::
  6317.  
  6318.  
  6319. (the "dir /b %1 | for .... " bit is because there's no guarantee that
  6320. for will get the files in the right order whereas dir sorts them :-)
  6321. but the for is used as a means to loop through the right number of
  6322. repitions)
  6323.                         
  6324.  
  6325. --- Maximus 2.01wb
  6326.  * Origin: Mirth Control Chch, NZ 64-3-3890898 v32b/v42b/FAX (3:770/140)
  6327.  
  6328. ------------------------------------------------------------------------
  6329.  
  6330. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6331.  
  6332.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/01/1992
  6333.   To: SCOTT WUNSCH                    Num: 126        Date: 11/25/1992
  6334. From: JASEN BETTS                      Re:            Time:  2:19 pm
  6335. Subj: SHELL.BTM... version 2.0       Prvt: N          Read: N
  6336.  
  6337.  SW>  Remember that SHELL.BTM that was originally posted by
  6338.  SW>Mark Stiebel?  Well, I think I have improved it.  And now
  6339.  SW>I've even fixed my improvements ;).  By using aliases to
  6340.  SW>implement its ON, OFF and END commands, it no longer has to
  6341.  SW>do very much with the commands you enter.  Hopefully this
  6342.  SW>will allow things like variable functions and multiple
  6343.  SW>commands (^) to work properly.  Anyhow, here it is...
  6344.  
  6345. hmm, I've got one minor mod...
  6346.  
  6347. your month-word expression:
  6348.  
  6349.  echos %@SUBSTR[%@LINE[D:\BATCH\MONTHS.DAT,%@EVAL[%@SUBSTR[...
  6350.   ...%_DATE,3,2]-1]],0,3]
  6351.  
  6352. becomes
  6353.  
  6354.  echos %@WORD[%@SUBSTR[%_date,3,2], x Jan Feb Mar Apr May Jun...
  6355.   ...Jul Aug Sep Oct Nov Dec]
  6356.  
  6357. which is slightly faster and doesn't need an external file or a pipe.
  6358.                         
  6359.  
  6360. --- Maximus 2.01wb
  6361.  * Origin: Mirth Control Chch, NZ 64-3-3890898 v32b/v42b/FAX (3:770/140)
  6362.  
  6363. ------------------------------------------------------------------------
  6364.  
  6365. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6366.  
  6367.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6368.   To: TONY PATER                      Num: 88         Date: 11/29/1992
  6369. From: WILLIAM HUGHES                   Re:            Time:  5:42 pm
  6370. Subj: 1/3 Standard mail arc          Prvt: N          Read: N
  6371.  
  6372. TP> Gentlemen,
  6373.  
  6374. Who, me?
  6375.  
  6376. TP> Perhaps you could help !
  6377.  
  6378. Maybe...
  6379.  
  6380. TP> Problem: Some Bulletin Boards "insist" on using a specific archival
  6381. TP>         mail packet format (eg. LZH or ZIP or ARJ) for QWK packets
  6382. TP>         [god knows why!). Perforce, I recourse to using 3
  6383. TP>         different offline-mail reader setups ?
  6384. TP> Required: 4DOS alias/BTM that will :
  6385. TP>               1. Interrogate what archiver was used in the
  6386. TP>                  downloaded mail packet.
  6387. TP>               2. Convert it (ie.standardise) to one format (say ZIP)
  6388.  
  6389. What offline reader are you using? SLMR will let me define up to four
  6390. archive formats, and will automatically match the reply packet format
  6391. with the downloaded mail packet format. If the reader you are using
  6392. does not allow this option, the following might be useful; at least, it
  6393. may give you some ideas that you can use. This BTM has not been tested.
  6394.  
  6395. All archivers (I believe) return an errorlevel. Try 'interrogating' the
  6396. packet with a view function (ARJ V, LHA V, PKUNZIP -V) redirected to NUL
  6397. and then act on the errorlevel.
  6398.  
  6399. :: -----------------------------------------------------------------------
  6400. :: File       : MAILCONV.BTM version 1.0 [untested]
  6401. :: Purpose    : Convert multiple formats of offline reader packets
  6402. ::              to a single archive format
  6403. :: Parameters : MAILCONV [function] [mail packet name]
  6404. :: Comments   : Untested; no warranty implied
  6405. ::              Modify as necessary
  6406. :: Author     : William W. Hughes at Fido 1:387/255
  6407. ::                                   usenet whughes@lonestar.utsa.edu
  6408. ::              for Tony Pater at Fido 3:712/619
  6409. :: Date       : Sun, 29 Nov 92
  6410. ::----------------------------------------------------------------------
  6411. :: Notes: in this listing, the following directories are used
  6412. ::
  6413. ::        C:\ZZ        - download and upload directory
  6414. ::        C:\Z         - work directory
  6415. ::        C:\SLMR\MAIL - offline reader mailpacket directory
  6416. ::        (These are my directories -- feel free to change)
  6417. ::
  6418. :: It is assumed that ZIP is the archive format of the reader you are
  6419. :: using, and that you do not want to keep the original, unconverted
  6420. :: mail packet. However, the converted mail packet & the original,
  6421. :: unreconverted reply packets are kept in the C:\SLMR\MAIL
  6422. :: directory. In simpler terms:
  6423. ::
  6424. :: 1. Download mail packet in ARJ format to download directory
  6425. :: 2. Convert ARJ format mailpacket in download directory to
  6426. ::    ZIP format mail packet in mail reader directory
  6427. :: 3. Delete ARJ format mail packet from download directory
  6428. :: 4. Read and reply to mail
  6429. :: 5. Convert ZIP format reply packet in mail reader directory
  6430. ::    to ARJ format reply packet in upload directory
  6431. :: 6. Upload ARJ format reply packet, then delete it (manually)
  6432. ::
  6433. :: It is also assumed that the reply packet keeps the same
  6434. :: name as the mail packet; i.e. NUL-RBBS.REP is a reply packet for
  6435. :: NUL-RBBS.QWK -- I rename my packets to the date I downloaded them,
  6436. :: so today's mail packet will be 921129.QWK, while the reply packet
  6437. :: containing this message will be 921126.REP [I'm a bit behind on my
  6438. :: echomail :-) ].
  6439. ::
  6440. :: The routine for autoconverting the packet name is left to the
  6441. :: student.
  6442. ::
  6443. :: Finally. lines that end in ellipses (...) and following lines that
  6444. :: begin the same way should be joined into one line.
  6445.  
  6446. [End part 1 of 3]
  6447.  
  6448.  * SLMR 2.1a * 
  6449.  
  6450. --- MsgToss 2.0b (r)
  6451.  * Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
  6452.  
  6453. ------------------------------------------------------------------------
  6454.  
  6455. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6456.  
  6457.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6458.   To: TONY PATER                      Num: 89         Date: 11/29/1992
  6459. From: WILLIAM HUGHES                   Re:            Time:  5:42 pm
  6460. Subj: 2/3 Standard mail arc          Prvt: N          Read: N
  6461.  
  6462. [Begin part 2 of 3]
  6463.  
  6464. setlocal
  6465.  
  6466. echo off
  6467.  
  6468. cls
  6469.  
  6470. if %1==M goto Mail
  6471. if %1==R goto Reply
  6472. goto Help
  6473.  
  6474. :: Part A - convert downloaded mail packet to standard archiver
  6475.  
  6476. : Mail
  6477.  
  6478. :: Step 1 - Check mail packet format, set function flag ArcType,
  6479. :: and goto conversion routine
  6480.  
  6481. arj v C:\ZZ\%2 > nul
  6482. if %?==0 set ArcType=A ^ goto Convert
  6483. lha v C:\ZZ\%2 > nul
  6484. if %?==0 set ArcType=L ^ goto Convert
  6485. pkunzip -v C:\ZZ\%2 > nul
  6486. if %?==0 set ArcType=Z ^ goto Convert
  6487.  
  6488. goto Error
  6489.  
  6490. :: Step 2 - Execute the conversion, based on ArcType flag
  6491.  
  6492. :Convert
  6493.  
  6494. echo Converting mailpacket %2 to ZIP format.
  6495. echo.
  6496.  
  6497. :: Unarchive original mail packet
  6498.  
  6499. iff %ArcType==A then
  6500.      arj e C:\ZZ\%2 C:\Z > nul
  6501. elseiff %ArcType==L then
  6502.      lha e C:\ZZ\%2 C:\Z > nul
  6503. else
  6504.      pkunzip C:\ZZ\%2 C:\Z > nul
  6505. endiff
  6506.  
  6507. :: Rearchive in preferred format, moving to offline reader
  6508. :: directory in the process
  6509.  
  6510. pkzip -m C:\SLMR\MAIL\%@name[%2].QWK C:\Z\*.* > nul
  6511.  
  6512. :: Create a 0-length flagfile in the mail reader directory to
  6513. :: control the later conversion of the reply packet
  6514.  
  6515. >C:\SLMR\MAIL\%@name[%2].%ArcType
  6516.  
  6517. :: Delete original, unconverted mail packet
  6518.  
  6519. del C:\ZZ\%2 > nul
  6520.  
  6521. echo Conversion completed. %@name[%2].QWK now resides in...
  6522.    ... C:\SLMR\MAIL.
  6523. echo.
  6524.  
  6525. goto Coda
  6526.  
  6527. :: Part B - convert reply packet to archive format required
  6528. ::          by the BBS
  6529.  
  6530. :Reply
  6531.  
  6532. :: Unarchive reply packet to work directory
  6533.  
  6534. pkunzip C:\SLMR\MAIL\%@name[%2].REP C:\Z > nul
  6535.  
  6536. [End part 2 of 3]
  6537.  
  6538.  * SLMR 2.1a * 
  6539.  
  6540. --- MsgToss 2.0b (r)
  6541.  * Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
  6542.  
  6543. ------------------------------------------------------------------------
  6544.  
  6545. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6546.  
  6547.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6548.   To: TONY PATER                      Num: 90         Date: 11/29/1992
  6549. From: WILLIAM HUGHES                   Re:            Time:  5:44 pm
  6550. Subj: 3/3 Standard mail arc          Prvt: N          Read: N
  6551.  
  6552. [Begin part 3 of 3]
  6553.  
  6554. :: Rearchive in the format preferred by the BBS, moving it to the
  6555. :: upload directory in the process
  6556.  
  6557. iff exist C:\SLMR\MAIL\%@name[%2].A then
  6558.     arj m C:\ZZ\%@name[%2].REP C:\Z\*.* > nul
  6559. elseiff exist C:\SLMR\MAIL\%@name[%2].L then
  6560.     lha m C:\ZZ\%@name[%2].REP C:\Z\*.* > nul
  6561. elseiff exist C:\SLMR\MAIL\%@name[%2].Z then
  6562.     pkzip -m C:\ZZ\%@name[%2].REP C:\Z\*.* > nul
  6563. else
  6564.     goto Error
  6565. endiff
  6566.  
  6567. :: Delete ArcType flagfile to indicate that reply packet has been
  6568. :: re-converted for the BBS
  6569.  
  6570. del C:\SLMR\MAIL\%@name[%2].? > nul
  6571.  
  6572. echo Conversion completed. %@name[%2].REP now resides in...
  6573.    ... upload directory C:\ZZ.
  6574. echo.
  6575.  
  6576. goto Coda
  6577.  
  6578. :: Program error
  6579.  
  6580. echo ERROR! Unknown archive format!
  6581. echo.
  6582. echo Human assistance required!
  6583. echo.
  6584.  
  6585. goto Coda
  6586.  
  6587. :: Program Help
  6588.  
  6589. :Help
  6590.  
  6591. TEXT
  6592.  
  6593.          The correct syntax for this command is:
  6594.  
  6595.          MAILCONV x filename.ext
  6596.  
  6597.          where x is M to indicate a conversion from downloaded
  6598.                          mail packet to standardised archive
  6599.                          format
  6600.          or         R to indicate a conversion from standardised
  6601.                          reply packet to BBS-compatible archive
  6602.                          format
  6603.  
  6604.          filename.ext is the name of the mail packet, without
  6605.                       path information
  6606.  
  6607. ENDTEXT
  6608.  
  6609. :Coda
  6610.  
  6611. endlocal
  6612.  
  6613. ::----------------------------------------------------------------------
  6614.  
  6615. TP> PS. Though I enjoy this echo - where do you all get the time to
  6616. TP>     devise these solutions to conundrums ?
  6617.  
  6618. Some of us are computer professionals who use 4DOS regularly and have
  6619. developed techniques for doing these things. Others just like to solve
  6620. puzzles. One of us is the author of 4DOS.
  6621.  
  6622. Hope this helped.
  6623.  
  6624. Bill
  6625. @B-{)}>
  6626.  
  6627.  
  6628.  * SLMR 2.1a * 
  6629.  
  6630. --- MsgToss 2.0b (r)
  6631.  * Origin: Nul 512-615-NUL1 HST/V32b,615-NUL2, NUL3, 1.2Gig (1:387/255)
  6632.  
  6633. ------------------------------------------------------------------------
  6634.  
  6635. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6636.  
  6637.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6638.   To: ALL                             Num: 80         Date: 11/28/1992
  6639. From: SEAN SULLIVAN                    Re:            Time: 11:17 am
  6640. Subj: delmsg.btm                     Prvt: N          Read: N
  6641.  
  6642. Hello All!
  6643. This is something I wrote to allow me to del all but my mail for my FIDO echo
  6644. subs.  It seems a little rough to me, but it works.  I starts by reading my
  6645. AREAS.BBS file to create a menu to let me choose which area to purge and how
  6646. many messages to keep and creates a TEMP.BBS file.  It then uses SGREP to
  6647. search for any *.msg files with my name in them and marks them READ-ONLY.  I
  6648. then call ECHOMGRC to delete only the files from the specified area leaving
  6649. all my mail untouched.  I tried to have ECHOMGR renumber the messages using
  6650. the /r parm, but it gets a runtime error.  At the end, the READ-ONLY attrib
  6651. is turned off.  Anybody got any suggestions on making this tighter, faster,
  6652. etc let me know.
  6653.  
  6654. ---------------------------------- CUT HERE ---------------------------------
  6655. :DELMSG - A echomail messaged purge 4DOS batch file.
  6656. :         Deletes all but your personal mail for any specified message sub
  6657. :----------------------------------------------------------------------------
  6658. cls
  6659.  
  6660. set numitems=%@LINES[c:\fd\qm\areas.bbs]
  6661. set item=1
  6662.  
  6663. :menu
  6664.  
  6665. set sel=%@NAME[%@WORD[0,%@LINE[c:\fd\qm\areas.bbs,%item]]]
  6666. set area=%@WORD[1,%@LINE[c:\fd\qm\areas.bbs,%item]]
  6667. echo %item )  %area >> menu.dat
  6668. set item=%@EVAL[%item+1]
  6669. if %item==%numitems goto which_1
  6670. goto menu
  6671.  
  6672. :which_1
  6673.  
  6674. type menu.dat
  6675. echo ------------------------------
  6676. input Enter area to prune: %%a
  6677. input Enter number of msg to save: %%numsave
  6678. set sub=%@NAME[%@WORD[0,%@LINE[c:\fd\qm\areas.bbs,%a]]]
  6679. set fido=%@WORD[1,%@LINE[c:\fd\qm\areas.bbs,%a]]
  6680. echo searching %fido area for your mail...hold a minute!
  6681. sgrep -f "sean&sullivan" c:\fd\echo\%sub\*.msg > temp.dat
  6682. echo C:\FD\ECHO\%sub %fido %numsave > temp.bbs
  6683. echo starting to mark your mail "read-only"
  6684. set numhits=%@LINES[temp.dat]
  6685. if %numhits==-1 then goto byebye
  6686.  
  6687. :loop
  6688.  
  6689. if %numhits LT 0 goto del_time
  6690. set record=%@LINE[temp.dat,%numhits]
  6691. set hit=%@WORD[0,%record]
  6692. iff "%hit"=="***FILE-NAME:" then
  6693.    set file=%@WORD[-0,%record]
  6694.    echo %file now read-only...
  6695.    attrib +r %file > nul
  6696. endiff
  6697. set numhits=%@EVAL[%numhits-1]
  6698. goto loop
  6699.  
  6700. :del_time
  6701.  
  6702. echo starting deletions...
  6703. c:\fd\qm\echomgrc /f=temp.bbs
  6704. del temp.bbs temp.dat menu.dat > nul
  6705. attrib -r %@PATH[%file]*.*
  6706.  
  6707. :byebye
  6708.  
  6709. ------------------------------- CUT HERE ----------------------------------
  6710.  
  6711. Sean
  6712.  
  6713. --- GoldED 2.40.P0623
  6714.  * Origin: COMNET Point #28 [Watervliet, NY] (1:267/113.28)
  6715.  
  6716. ------------------------------------------------------------------------
  6717.  
  6718. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6719.  
  6720.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6721.   To: HUGO LANDSMAN                   Num: 85         Date: 11/28/1992
  6722. From: SIMON JOSEFSSON                  Re:            Time: 11:47 am
  6723. Subj: Some Useful Aliases...         Prvt: N          Read: N
  6724.  
  6725.  * In a msg on 20 Nov (18:07), hugo landsman of 2:512/154.5@fidonet.org
  6726. writes:
  6727.  
  6728.  KV>> alias up=`cd ..`
  6729.  
  6730.  hl> alias down=`dir/bad>&>nul|cd %@line[con,0]`
  6731.  hl> alias next=`set _d=%@substr[%_cwd,%@len[%@path[%_cwd]]]^set
  6732.  hl> _f=%@unique[%temp]^dir../bad>&>nul>!%_f^for %f in (@%_f) (iff %f == %_d
  6733.  hl> then^set _n=1^elseiff %_n=1 then^cd %f^set _n=2^endiff)^del/q %_f^unset
  6734. _f
  6735.  hl> _n _d`
  6736.  
  6737. Great! Great!!! I like'em, did some rework and come up with this... first
  6738. DOWN.BTM:
  6739.  
  6740. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  6741.       O \
  6742. @echo off
  6743. ::
  6744. :: last updated: 11/28/92 sj   (based on Hugo Landsmans alias, thanks!)
  6745. :: DOWN - Jumps to the first directory below the current one.
  6746. ::
  6747. *dir/bad>&>nul|set _f=%@line[con,0]
  6748. if %@WORD[0,%_f]! eq **EOF**! (Echo No directories found^quit)
  6749. *cd %_f
  6750. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  6751.       O \
  6752.  
  6753. And then for the NEXT.BTM:
  6754.  
  6755. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  6756.       O \
  6757. @echo off
  6758. ::
  6759. :: last updated: 11/28/92 sj   (based on Hugo Landsmans alias, thanks!)
  6760. :: NEXT - Jumps to the directory next to the current one. ::
  6761. set _d=%@substr[%_cwd,%@len[%@path[%_cwd]]]
  6762. set _f=%@unique[%temp]
  6763. *dir../bad>&>nul>!%_f
  6764. if %_d! == ! (*cd %@line[%_f,0]^quit)
  6765.  
  6766. for %f in (@%_f) do (
  6767.   iff %@WORD[0,%f]! == %_d! then
  6768.     set _n=1
  6769.   elseiff %_n=1 then
  6770.     *cd ..\%f
  6771.     set _n=2
  6772.   endiff)
  6773.  
  6774. del/q %_f
  6775. unset/q _f _n _d
  6776. _ _ _ O / _ _ C_U_T_ H_E_R_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  6777.       O \
  6778.  
  6779. Note! The Temp-variable should preferable point to a ramdisk.. or, replace
  6780. the %temp variable with for instance 'e:\'
  6781.  
  6782. // JaS
  6783.  
  6784. --- msgedsq/2 2.1
  6785.  * Origin: Simon Josefsson - Sweden, Stockholm. (2:201/111.34)
  6786. 
  6787. ------------------------------------------------------------------------
  6788.  
  6789. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6790.  
  6791.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/02/1992
  6792.   To: HERMOD PEDERSEN                 Num: 92         Date: 11/26/1992
  6793. From: BILL-STEVEN KERR                 Re:            Time:  6:55 pm
  6794. Subj: SYSINFO.BTM                    Prvt: N          Read: N
  6795.  
  6796.  > I've tried your BTM and it works great - up to one
  6797.  > point. At the bottom
  6798.  > line (the white border) I get the following:
  6799.  > Unknown command "
  6800.  > and then the rest of the line is bright white, as I
  6801.  > suppose it should be.
  6802.  
  6803.  I've searched for this Hermod and can't find anything, what version of 4DOS
  6804. are you using?
  6805.  
  6806.  > One more item:
  6807.  > I'm running three hard drives, two RLL's and one IDE
  6808.  > with the help of the
  6809.  > 3_Drives program. How could the third drive be
  6810.  > incorporated??
  6811.  
  6812.  Here's sysinfo for three drives - (C, D and E)
  6813.  
  6814. --------------------- SNIP HERE -----------
  6815.  
  6816.  
  6817. :: Sysinfo.btm - three drives version - by Steven Kerr '92
  6818. :: Email  - Fido   : 2:259/27.5
  6819. ::          Usenet : bill-steven.kerr@almac.co.uk
  6820. ::
  6821. @ECHO OFF
  6822. SETLOCAL
  6823. CLS
  6824. SCREEN 19 0
  6825. :: //
  6826. DRAWBOX 2 0 18 79 0 BRI BLA ON WHI FILL WHI
  6827. SCRPUT 18 1 BRI BLA ON WHI ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄...
  6828. ...▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  6829. SCRPUT 2 1 BRI WHI ON WHI ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀...
  6830. ...▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  6831. SCRPUT 2 78 BRI BLA ON WHI ▀
  6832. DRAWVLINE 2 0 17 0 BRI WHI ON WHI
  6833. SCRPUT 18 1 BRI WHI ON WHI ▄
  6834. :: //
  6835. DRAWBOX 4 2 16 37 0 RED ON WHI FILL RED
  6836. DRAWHLINE 3 2 11 0 RED ON WHI
  6837. DRAWHLINE 17 4 35 0 BRI BLA ON WHI
  6838. DRAWVLINE 5 38 13 0 BRI BLA ON WHI
  6839. DRAWVLINE 5 39 13 0 BRI BLA ON WHI
  6840. :: //
  6841. DRAWBOX 4 42 16 75 0 BLU ON WHI FILL BLU
  6842. DRAWHLINE 3 42 11 0 BLU ON WHI
  6843. DRAWHLINE 17 44 34 0 BRI BLA ON WHI
  6844. DRAWVLINE 5 76 13 0 BRI BLA ON WHI
  6845. DRAWVLINE 5 77 13 0 BRI BLA ON WHI
  6846. SCRPUT 3 4 BRI WHI ON RED GENERAL
  6847. :: //
  6848. SCRPUT 5 4 BRI WHI ON RED 4DOS Version No.  :   %_4ver
  6849. SCRPUT 6 4 BRI WHI ON RED DOS Version No.   :   %_dosver
  6850. SCRPUT 7 4 BRI WHI ON RED Alias Free        :   %_alias b
  6851. SCRPUT 8 4 BRI WHI ON RED Environment Free  :   %_env b
  6852. SCRPUT 9 4 BRI WHI ON RED System Time       :   %_time
  6853. SCRPUT 10 4 BRI WHI ON RED System Date       :   %_date
  6854. SCRPUT 11 4 BRI WHI ON RED Day of the week   :   %_dow
  6855. SCRPUT 12 4 BRI WHI ON RED Monitor Type      :   %_monitor
  6856. SCRPUT 13 4 BRI WHI ON RED Video Card        :   %@UPPER[%_video]
  6857. IFF "%_NDP"=="387" .AND. "%_CPU"=="486" THEN
  6858.         SCRPUT 14 4 BRI WHI ON RED Maths Copro.      :   487
  6859. ELSE
  6860.         SCRPUT 14 4 BRI WHI ON RED Maths Copro.      :   %_ndp
  6861. ENDIFF
  6862. SCRPUT 15 4 BRI WHI ON RED Shell level       :   %_shell
  6863. :: //
  6864. SCRPUT 5 44 BLA ON BLU ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  6865. SCRPUT 9 44 BLA ON BLU ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  6866. SCRPUT 13 44 BLA ON BLU ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  6867. SCRPUT 7 44 BRI WHI ON BLU ...
  6868. ...%@diskused[c:,M] of %@disktotal[c:,M] Mb used on C:
  6869. SCRPUT 11 44 BRI WHI ON BLU ...
  6870. ...%@diskused[d:,M] of %@disktotal[d:,M] Mb used on D:
  6871. SCRPUT 15 44 BRI WHI ON BLU ...
  6872. ...%@diskused[e:,M] of %@disktotal[e:,M] Mb used on E:
  6873. DRAWHLINE 5 44 %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[C:]...
  6874. .../%@DISKTOTAL[C:])*100]]/10)*3]] 0 WHI ON WHI
  6875. DRAWHLINE 9 44 %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[D:]...
  6876. .../%@DISKTOTAL[D:])*100]]/10)*3]] 0 WHI ON WHI
  6877. DRAWHLINE 13 44 %@INT[%@EVAL[(%@INT[%@EVAL[(%@DISKUSED[E:]...
  6878. .../%@DISKTOTAL[D:])*100]]/10)*3]] 0 WHI ON WHI
  6879. SCRPUT 5 45 BRI WHI ON WHI %@INT[%@EVAL[(%@DISKUSED[C:]...
  6880. .../%@DISKTOTAL[C:])*100]]%
  6881. SCRPUT 9 45 BRI WHI ON WHI %@INT[%@EVAL[(%@DISKUSED[D:]...
  6882. /%@DISKTOTAL[C:])*100]]%
  6883. SCRPUT 13 45 BRI WHI ON WHI %@INT[%@EVAL[(%@DISKUSED[E:]...
  6884. .../%@DISKTOTAL[D:])*100]]%
  6885. SCRPUT 5 47 BRI WHI ON WHI `%`
  6886. SCRPUT 9 47 BRI WHI ON WHI `%`
  6887. SCRPUT 13 47 BRI WHI ON WHI `%`
  6888. :: //
  6889. :EXIT
  6890. SCREEN 19 0
  6891. ENDLOCAL
  6892.  
  6893. ------------------ SNIP HERE -----------
  6894.  
  6895. I Just re-chopped this out of this message and joined up the ...'s and all
  6896. works fine. Hope this one works fine, but I can't see why the other one did
  6897. not, other's reported no problems at all. Glad you liked it :-)
  6898.  
  6899. Steven.
  6900. Fidonet : 2:259/27.5
  6901. Usenet  : bill-steven.kerr@almac.co.uk
  6902.  
  6903. --- FMail 0.90
  6904.  * Origin: Bill-Steven Kerr, Mid Calder, SCOTLAND (2:259/27.5)
  6905.  
  6906. ------------------------------------------------------------------------
  6907.  
  6908. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6909.  
  6910.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/03/1992
  6911.   To: MAYNARD HOGG                    Num: 150        Date: 12/01/1992
  6912. From: FURLAN PRIMUS                    Re:            Time:  1:04 pm
  6913. Subj: Dump.Btm                       Prvt: N          Read: N
  6914.  
  6915. here's something i use to dump files off to a flopy disk:
  6916.  
  6917.         setlocal
  6918.         alias dump2a=`if %@filesize[%1] lt %@diskfree[a:] move %1 a:`        
  6919.    
  6920.         keystack "*" 13
  6921.         select /ozr /a-d dump2a (*.*)
  6922.         endlocal
  6923.  
  6924. --------------------
  6925.  
  6926. i call it dump.btm :-)
  6927. omit the keystack line for manual selection
  6928.  
  6929. ciao,
  6930.            fl
  6931.  
  6932. --- timEd/B5
  6933.  * Origin: old age = you + 20 years. (1:141/590)
  6934.  
  6935. ------------------------------------------------------------------------
  6936.  
  6937. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6938.  
  6939.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/03/1992
  6940.   To: MARK STIEBEL                    Num: 121        Date: 11/30/1992
  6941. From: MAYNARD HOGG                     Re:            Time:  8:32 am
  6942. Subj: Saving Cursor                  Prvt: N          Read: N
  6943.  
  6944. Upgrading to V4.01D broke my version of SPACE.BTM! The CURSOR
  6945. specifications are now one line lower! To remain backwardly compatible
  6946. and to guard against future incidents, I have therefore added an
  6947. FGREP. Those who are totally deprived can use DOS FIND.
  6948.  
  6949. rem Save cursor shape.
  6950. rem The fgrep became necessary because of a change in SETDOS layout
  6951. rem between 4.0B and 4.01D.
  6952. setdos |c:\bin\fgrep -s CURSOR >&>nul |
  6953.  ...set curshape=%@substr[%@line[con,0],18]:%@substr[%@line[con,0],14]
  6954. setdos /s0:0
  6955.  
  6956. :
  6957. :
  6958.  
  6959. :End
  6960. SCREEN 12 0
  6961. color %oldfb
  6962. setdos /s%curshape
  6963. quit %du
  6964.  * SPEED 1.10 [NR] * 
  6965. --- GEcho 1.00/beta+
  6966.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  6967.  
  6968. ------------------------------------------------------------------------
  6969.  
  6970. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  6971.  
  6972.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/04/1992
  6973.   To: PHI NGUYEN                      Num: 159        Date: 11/30/1992
  6974. From: SCOTT WUNSCH                     Re:            Time:  8:40 pm
  6975. Subj: Projects                       Prvt: N          Read: N
  6976.  
  6977. Salutations, Phi!
  6978.  
  6979.   On 26 Nov 92, Phi Nguyen entered the following ASCII codes for the express
  6980. viewing pleasure of Saul Levy...
  6981.  
  6982.  PN> BTW Do you think you can design a routine that will return an random
  6983.  PN> number? I think it can be done using @substr and time.
  6984.  
  6985.   Oh, that's too easy ;).  This...
  6986.  
  6987. ALIAS RND=SET R=%@EVAL[%@SUBSTR[%_TIME,6,2] %% %1]
  6988.  
  6989.   ...should be good enough for most applications.  First (and only) parameter
  6990. gives the high end range.  Lowest value is 0.
  6991.  
  6992.                                                /\   LLAP...
  6993.                                              > \ cott \\'unsch <
  6994.                                               \/
  6995.  
  6996. --- GoldED 2.40
  6997.  * Origin: Pointedly pointless point. -=- Regina, Sask, Canada
  6998. (1:140/23.1701)
  6999.  
  7000. ------------------------------------------------------------------------
  7001.  
  7002. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7003.  
  7004.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/04/1992
  7005.   To: KLAUS KETTNER                   Num: 154        Date: 11/28/1992
  7006. From: TONY DUNLAP                      Re:            Time:  3:40 pm
  7007. Subj: SPACE.BTM                      Prvt: N          Read: N
  7008.  
  7009.  > Hi Bill-Steven !
  7010.  
  7011.  >   I like your Batch a lot! It looks great - I've just
  7012.  > added some lines,
  7013.  >   so it shows now the amount of free DOS Memory
  7014.  > (percentage of 640 kB).
  7015.  
  7016. Try something like the following. (I had to put it into a debug script
  7017. because it contains hi-bit characters.)
  7018.  
  7019. Save this message to a file, edit off everything above the line "N USAGE.BTM"
  7020. then exit and at your DOS prompt type
  7021.  
  7022. "DEBUG<file"
  7023.  
  7024. You can either type "USAGE" or "USAGE d:" where d: is the drive letter (with
  7025. the colon).
  7026.  
  7027.  N USAGE.BTM
  7028.  E 0100 53 45 54 4C 4F 43 41 4C 0D 0A 53 45 54 20 41 3D B0 B0 B0 B0 B0
  7029.  E 0115 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7030.  E 012A B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7031.  E 013F B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7032.  E 0154 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 0D 0A 53 45 54 20 42 3D DB
  7033.  E 0169 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7034.  E 017E DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7035.  E 0193 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7036.  E 01A8 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB 0D 0A 53 45 54
  7037.  E 01BD 20 44 55 53 41 47 45 3D 25 40 53 55 42 53 54 52 5B 25 42 2C 30
  7038.  E 01D2 2C 25 40 49 4E 54 5B 25 40 45 56 41 4C 5B 2E 38 2A 25 40 44 49
  7039.  E 01E7 53 4B 55 53 45 44 5B 25 31 2C 4B 5D 2F 25 40 44 49 53 4B 54 4F
  7040.  E 01FC 54 41 4C 5B 25 31 2C 4B 5D 2A 31 30 30 5D 5D 5D 0D 0A 53 45 54
  7041.  E 0211 20 44 55 53 41 47 45 3D 25 44 55 53 41 47 45 25 25 40 53 55 42
  7042.  E 0226 53 54 52 5B 25 41 2C 30 2C 25 40 45 56 41 4C 5B 38 30 2D 25 40
  7043.  E 023B 4C 45 4E 5B 25 44 55 53 41 47 45 5D 5D 5D 0D 0A 45 43 48 4F 20
  7044.  E 0250 44 52 49 56 45 20 25 31 0D 0A 45 43 48 4F 53 20 25 44 55 53 41
  7045.  E 0265 47 45 0D 0A 45 43 48 4F 53 20 C3 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4
  7046.  E 027A C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C4 C5
  7047.  E 028F C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4
  7048.  E 02A4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4
  7049.  E 02B9 C4 C4 C4 C4 C4 B4 20 0D 0A 45 43 48 4F 53 20 31 20 20 20 20 20
  7050.  E 02CE 31 30 20 20 20 20 20 20 32 30 20 20 20 20 20 20 33 30 20 20 20
  7051.  E 02E3 20 20 20 34 30 20 20 20 20 20 20 35 30 20 20 20 20 20 20 36 30
  7052.  E 02F8 20 20 20 20 20 20 37 30 20 20 20 20 20 20 38 30 20 20 20 20 20
  7053.  E 030D 20 39 30 20 20 20 20 20 31 30 30 0D 0A 45 43 48 4F 2E 0D 0A 45
  7054.  E 0322 43 48 4F 20 44 4F 53 20 4D 45 4D 4F 52 59 0D 0A 53 45 54 20 4D
  7055.  E 0337 55 53 41 47 45 3D 25 40 53 55 42 53 54 52 5B 25 42 2C 30 2C 25
  7056.  E 034C 40 49 4E 54 5B 25 40 45 56 41 4C 5B 38 30 2D 28 2E 38 2A 25 40
  7057.  E 0361 44 4F 53 4D 45 4D 5B 4B 5D 2F 36 34 30 2A 31 30 30 29 5D 5D 5D
  7058.  E 0376 0D 0A 53 45 54 20 4D 55 53 41 47 45 3D 25 4D 55 53 41 47 45 25
  7059.  E 038B 25 40 53 55 42 53 54 52 5B 25 41 2C 30 2C 25 40 45 56 41 4C 5B
  7060.  E 03A0 38 30 2D 25 40 4C 45 4E 5B 25 4D 55 53 41 47 45 5D 5D 5D 0D 0A
  7061.  E 03B5 45 43 48 4F 53 20 25 4D 55 53 41 47 45 0D 0A 45 43 48 4F 53 20
  7062.  E 03CA C3 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4
  7063.  E 03DF C4 C5 C4 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4
  7064.  E 03F4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4
  7065.  E 0409 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 B4 20 0D 0A 45
  7066.  E 041E 43 48 4F 53 20 31 20 20 20 20 20 31 30 20 20 20 20 20 20 32 30
  7067.  E 0433 20 20 20 20 20 20 33 30 20 20 20 20 20 20 34 30 20 20 20 20 20
  7068.  E 0448 20 35 30 20 20 20 20 20 20 36 30 20 20 20 20 20 20 37 30 20 20
  7069.  E 045D 20 20 20 20 38 30 20 20 20 20 20 20 39 30 20 20 20 20 20 31 30
  7070.  E 0472 30 0D 0A 0D 0A
  7071.  Rcx
  7072.  0377
  7073.  W
  7074.  Q
  7075.  
  7076. --- GEcho 1.00
  7077.  * Origin: DISCOVER (1:2220/30.1)
  7078.  
  7079. ------------------------------------------------------------------------
  7080.  
  7081. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7082.  
  7083.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/06/1992
  7084.   To: ALL                             Num: 131        Date: 12/03/1992
  7085. From: DAYTON LIVINGSTON                Re:            Time:  5:17 pm
  7086. Subj: %@SUBSTR tip - Filenames       Prvt: N          Read: N
  7087.  
  7088. Hiya folks...  Just working on a BTM here and found a shortcut to
  7089. displaying filenames in a formatted output.  This did NOT work
  7090. (for me) in version 3.xx, but works fine here in version 4.01D.
  7091.  
  7092.     %@SUBSTR[%@UPPER[%@NAME[%a]]         ,0,8].%@UPPER[%@EXT[%a]]
  7093.  
  7094. This will output file %a in the format:
  7095.  
  7096.     testtest.txt   ->    TESTTEST.TXT
  7097.     file.tmp       ->    FILE    .TMP
  7098.     a.1            ->    A       .1
  7099.  
  7100. ...and so on.  In short, adding spaces to line things up nicely.
  7101. I used to have to use a real work-around that really slowed down
  7102. my BTM file processes, so when I found that this now works, I
  7103. thought I should share it with the world.  No more having to use
  7104. %@CHAR[255]'s to do simple formatting!
  7105.  
  7106. Of course, it probably won't work so well if your filenames
  7107. contain some of those odd characters I see from time to time
  7108. like the back-quote character (`).  (Whoever decided that these
  7109. should be allowed in filenames should be shot!)
  7110.  
  7111. (Please!  Don't everyone write back and say, "I could have told
  7112. you that!" (Grin))
  7113.  
  7114. - Dayton
  7115.  
  7116.  * OLX 994 * Parting is such sweet sorrow. - Figaro
  7117.  
  7118. --- Maximus 2.01wb
  7119.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148)
  7120.  
  7121. ------------------------------------------------------------------------
  7122.  
  7123. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7124.  
  7125.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/06/1992
  7126.   To: PHI NGUYEN                      Num: 57         Date: 12/03/1992
  7127. From: JAY CURRY                        Re:            Time: 12:02 am
  7128. Subj: projects                       Prvt: N          Read: N
  7129.  
  7130.  -=> Quoting Phi Nguyen to Saul Levy <=-
  7131.  
  7132.  PN> BTW Do you think you can design a routine that will return an random
  7133.  PN> number? I think it can be done using @substr and time.
  7134.  
  7135. I suppose Saul could, but here is mine:
  7136. ----8<----8<----8<--------------------
  7137. ::+--------------------------------------------------------------------+
  7138. ::| RndGen.btm                             |
  7139. ::| a program that returns a random number                 |
  7140. ::| format:  RNDGEN [limit]                        |
  7141. ::| limit limits the top end of the random number created.         |
  7142. ::| This program generates a random number and will return that number |
  7143. ::| mod 256 as an errorlevel, and that number as text out.         |
  7144. ::| no number will be larger than 8192, edit this limit and the    |
  7145. ::| multiplier as desired                          |
  7146. ::+--------------------------------------------------------------------+
  7147.  
  7148. if !%rndkey!==!! gosub makekey
  7149. set rndkey=%@eval[%rndkey * 314]
  7150. set rndkey=%@eval[%rndkey %% 8192]
  7151. iff !%1! == !! then
  7152.         echo %rndkey
  7153.         quit %@eval[%rndkey %% 256]
  7154.     else
  7155.         echo %@eval[%rndkey %% %1]
  7156.         quit %eval[(%rndkey%% %1) %% 256]
  7157.  
  7158. :makekey
  7159. set rndkey=%@substr[%_date,0,2]%@substr[%_date,3,2]%@substr[%_date,6,2]
  7160. set rndkey=%rndkey%@substr[%_time,0,2]%@substr[%_time,3,2]
  7161. set rndkey=%rndkey%@substr[%time,6,2]
  7162. return
  7163. ========>8=======>8==========>8==========>8=====
  7164.  
  7165. note the number 8192, and 314 are arbitrary selections, I used 2^13 for
  7166. 8192, and one digit less then the number of digits 2^13 used of the
  7167. digits in the number pi.  what you use for your multiplier and your
  7168. modulus are up to you, but for most efective use, make the multiplier
  7169. one digit less then the mod number.  stay away from really large
  7170. numbers, and also really small numbers.
  7171.  
  7172. The result of this btm is an integer, not a real number.
  7173.  
  7174. If you wish to do away with the rndkey variable after each use, place a
  7175. setlocal at the begining of the program.  Doing so will make the program
  7176. take longer to complete.
  7177.  
  7178. a sample batch routine that could use this looks like:
  7179.  
  7180. @echo off
  7181. call rndgen 8
  7182. type joke%rndkey.txt
  7183. quit
  7184.  
  7185. or use the errorlevel set in rndgen for some fun.
  7186.  
  7187. @echo off
  7188. call rndgen
  7189. if errorlevel 1 goto skip
  7190. echo rndgen returned a 0
  7191. :skip
  7192. whatever...
  7193.  
  7194.  
  7195. you get the picture...
  7196.  
  7197. Legal note, the algorithm used is the additive congruential algorithm,
  7198. and comes from the second edition Algorithms by Robert Sedgewick,
  7199. copyright 1988.  The algorithm is very common, and further notes on the
  7200. algorithm may be found there.
  7201.  
  7202. -Jay
  7203.  
  7204.  
  7205.  
  7206.  
  7207.  
  7208.  
  7209.  
  7210. ... Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
  7211. --- FMail 0.92
  7212.  * Origin: Le Cross Roads 608-788-8086 HST/DS LaCrosse, WI (1:2360/12.0)
  7213.  
  7214. ------------------------------------------------------------------------
  7215.  
  7216. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7217.  
  7218.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/08/1992
  7219.   To: ALL                             Num: 105        Date: 12/01/1992
  7220. From: JAN VANHOOF                      Re:            Time: 11:38 pm
  7221. Subj: men.btm 1/2                    Prvt: N          Read: N
  7222.  
  7223. Hoi All!
  7224.  
  7225. For those who like it, adapt it to your own needs and use it.
  7226.  
  7227. ******************** MEN.BTM  part 1 ********************************
  7228.  
  7229. @echo off
  7230. loadbtm on
  7231. :menulabel
  7232.    cls black on cyan
  7233.    drawbox 1 1 23 57 2 red on white fill black
  7234.    drawbox 1 58 23 78 2 red on white fill blue
  7235.    drawhline 21 2 55 1 red on black
  7236.    iff %_dow eq Sun then scrput 3 60 bright yellow on blue Sunday
  7237.    else iff %_dow eq Mon then scrput 3 60 bright yellow on blue Monday
  7238.    else iff %_dow eq Tue then scrput 3 60 bright yellow on blue Tuesday
  7239.    else iff %_dow eq Wed then scrput 3 60 bright yellow on blue Wednesday
  7240.    else iff %_dow eq Thu then scrput 3 60 bright yellow on blue Thursday
  7241.    else iff %_dow eq Fri then scrput 3 60 bright yellow on blue Friday
  7242.    else iff %_dow eq Sat then scrput 3 60 bright yellow on blue Saturday
  7243.    endiff
  7244.    scrput 4  62 white on blue %_date
  7245.    scrput 5  62 white on blue %_time
  7246.    scrput 7  60 bright yellow on blue Free Memory
  7247.    scrput 8  62 bright white on blue DOS          Kb
  7248.    scrput 8  71 white on blue %@dosmem[K]
  7249.    scrput 9  62 bright white on blue XMS          Kb
  7250.    scrput 9  70 white on blue %@xms[K]
  7251.    scrput 10 62 bright white on blue ENV           b
  7252.    scrput 10 71 white on blue %_env
  7253.    scrput 11 62 bright white on blue ALI           b
  7254.    scrput 11 71 white on blue %_alias
  7255.    scrput 13 60 bright yellow on blue Harddisk C
  7256.    scrput 14 62 bright white on blue Total        Kb
  7257.    scrput 14 69 white on blue %@disktotal[C:,K]
  7258.    scrput 15 62 bright white on blue Used         Kb
  7259.    scrput 15 69 white on blue %@diskused[C:,K]
  7260.    scrput 16 62 bright white on blue Free         Kb
  7261.    scrput 16 69 white on blue %@diskfree[C:,K]
  7262.    scrput 21 62 red on blue DOS :
  7263.    scrput 21 68 bright red on blue %_dosver
  7264.    scrput 22 61 red on blue 4DOS :
  7265.    scrput 22 68 bright red on blue %_4ver
  7266.    scrput 3  19 bright magenta on black  M A I N   M E N U
  7267.    scrput 4  18 magenta on black  -------------------
  7268.    scrput 6  6 bright yellow on black  *  Lotus 123
  7269.    scrput 6  9 bright red on black L
  7270.    scrput 7  6 bright yellow on black  *  Quick Editor
  7271.    scrput 7  9 bright red on black Q
  7272.    scrput 8  6 bright yellow on black  *  PC Shell
  7273.    scrput 8  9 bright red on black P
  7274.    scrput 9  6 bright yellow on black  *  Norton Commander
  7275.    scrput 9  9 bright red on black N
  7276.    scrput 10  6 bright yellow on black  *  Frontdoor
  7277.    scrput 10  9 bright red on black F
  7278.    scrput 11  6 bright yellow on black  *  Telix
  7279.    scrput 11  9 bright red on black T
  7280.    scrput 12  6 bright yellow on black  *  GoldEd
  7281.    scrput 12  9 bright red on black G
  7282.    scrput 13  6 bright yellow on black  *  Privad
  7283.    scrput 13  10 bright red on black r
  7284.    scrput 14  6 bright yellow on black  *  TriText
  7285.    scrput 14  11 bright red on black i
  7286.    scrput 15  6 bright yellow on black  *  ModPlay
  7287.    scrput 15  9 bright red on black M
  7288.    scrput 16  6 bright yellow on black  *  Flight Simulator
  7289.    scrput 16  16 bright red on black S
  7290.    scrput 6  33 bright green on black F1 - Help
  7291.    scrput 7  33 bright green on black F2 - Memory
  7292.    scrput 8  33 bright green on black F3 - Q...telix.cap
  7293.    scrput 9  33 bright green on black F4 -
  7294.    scrput 10 33 bright green on black F5 -
  7295.    scrput 11 33 bright green on black F6 -
  7296.    scrput 12 33 bright green on black F7 -
  7297.    scrput 13 33 bright green on black F8 -
  7298.    scrput 14 33 bright green on black F9 - Compress HD
  7299.    scrput 15 32 bright green on black F10 - Printer Codes
  7300.    scrput 16 32 bright green on black F11 - Format Menu
  7301.    scrput 17 32 bright red on black F12 - Exit
  7302.    scrput 20 4 yellow on black 1 New Files    2 Dwarz    3 Cost FD    4 Cost
  7303. Telix
  7304.    scrput 20 4 mag on black 1
  7305.    scrput 20 19 mag on black 2
  7306.    scrput 20 30 mag on black 3
  7307.    scrput 20 43 mag on black 4
  7308.    scrput 22 15 white on black This is day       of your life!
  7309.    scrput 22 27 bright red on black %@eval[%@date[%_date]+8695]
  7310.    screen 24  1
  7311.    set menuevar=▓
  7312. *************************end part 1**********************************
  7313.  
  7314. --- GoldED 2.40.P0720+ & Fmail 0.92+
  7315.  * Origin:  ==[ INFO-CENTER BBS <> 32-14-312818 <> Blok-Point ]= (2:292/401.3)
  7316.  
  7317. ------------------------------------------------------------------------
  7318.  
  7319. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7320.  
  7321.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/08/1992
  7322.   To: ALL                             Num: 106        Date: 12/01/1992
  7323. From: JAN VANHOOF                      Re:            Time: 11:51 pm
  7324. Subj: men.btm 2/2                    Prvt: N          Read: N
  7325.  
  7326. ******************** MEN.BTM  part 2 ********************************
  7327.  
  7328. :loop
  7329.    scrput 5 62 white on blue %_time
  7330.    inkey /w0 %%menuevar
  7331.    if "%menuevar"=="▓" goto loop
  7332.  
  7333.    iff "%menuevar"=="l" then
  7334.         cd\lotus^123^goto menulabel
  7335.    elseiff "%menuevar" == "q" then
  7336.         q^goto menulabel
  7337.    elseiff "%menuevar" == "p" then
  7338.         pcshell^goto menulabel
  7339.    elseiff "%menuevar" == "n" then
  7340.         nc^goto menulabel
  7341.    elseiff "%menuevar" == "r" then
  7342.         cd\prive^start^goto menulabel
  7343.    elseiff "%menuevar" == "t" then
  7344.         cd\telix^keystack 13^telix^goto menulabel
  7345.    elseiff "%menuevar" == "s" then
  7346.         mouse^cd\fs^fs4^goto menulabel
  7347.    elseiff "%menuevar" == "f" then
  7348.         cd\fd^info^goto menulabel
  7349.    elseiff "%menuevar" == "i" then
  7350.         cd\tritext^tt^goto menulabel
  7351.    elseiff "%menuevar" == "m" then
  7352.         cd\mod^mp -i^goto menulabel
  7353.    elseiff "%menuevar" == "g" then
  7354.         cd\fd\golded^golded^goto menulabel
  7355.    elseiff "%menuevar" == "@59" then
  7356.         help^goto menulabel
  7357.    elseiff "%menuevar" == "@60" then
  7358.         mem /c^pause^goto menulabel
  7359.    elseiff "%menuevar" == "@61" then
  7360.         cd\telix^q telix.cap^goto menulabel
  7361.    elseiff "%menuevar" == "@63" then
  7362.         up^goto menulabel
  7363.    elseiff "%menuevar" == "@64" then
  7364.         up^goto menulabel
  7365.    elseiff "%menuevar" == "@67" then
  7366.         cd\pctools^compress^goto menulabel
  7367.    elseiff "%menuevar" == "@68" then
  7368.         clr^print.btm
  7369.    elseiff "%menuevar" == "@133" then
  7370.         clr^form.btm
  7371.    elseiff "%menuevar" == "@134" then
  7372.         cls white on black^quit
  7373.    elseiff "%menuevar" == "1" then
  7374.         cd\bbs^q newfiles.lst newfiles.bbs^goto menulabel
  7375.    elseiff "%menuevar" == "2" then
  7376.         cd\bbs\dwarz^q bull45.bbs bull46.bbs^goto menulabel
  7377.    elseiff "%menuevar" == "3" then
  7378.         cd\fd\telcost\phone^q telcost.txt^goto menulabel
  7379.    elseiff "%menuevar" == "4" then
  7380.         cd\telix^telebill^goto menulabel
  7381.    else
  7382.        beep 200 4
  7383.        goto menulabel
  7384.    endiff
  7385. *************************end part 2**********************************
  7386.  
  7387. CU
  7388.  
  7389. -= JVH =-
  7390.  
  7391.  When all else fails, read the instructions.
  7392.  
  7393. --- GoldED 2.40.P0720+ & Fmail 0.92+
  7394.  * Origin:  ==[ INFO-CENTER BBS <> 32-14-312818 <> Blok-Point ]= (2:292/401.3)
  7395.  
  7396. ------------------------------------------------------------------------
  7397.  
  7398. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7399.  
  7400.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/08/1992
  7401.   To: KRIS VERBEECK                   Num: 108        Date: 12/04/1992
  7402. From: HUGO LANDSMAN                    Re:            Time: 12:54 pm
  7403. Subj: Some Useful Aliases...         Prvt: N          Read: N
  7404.  
  7405. Hoi Kris,
  7406.  
  7407. 30 Nov 1992 20:04, Kris Verbeeck (2:292/877.5@fidonet.org) wrote to hugo
  7408. landsman:
  7409.  
  7410.  >> alias down=`dir/bad>&>nul|cd %@line[con,0]`
  7411.  >> alias next=`set _d=%@substr[%_cwd,%@len[%@path[%_cwd]]]^
  7412.  >>            set _f=%@unique[%temp]^dir../bad>&>nul>!%_f^
  7413.  >>            for %f in (@%_f) (iff %f == %_d then^set _n=1^
  7414.  >>            elseiff %_n=1 then^cd %f^set_n=2^endiff)^del/q %_f^
  7415.  >>            unset _f _n _d`
  7416.  KV> Sorry but these aliases don't work over here.
  7417.  
  7418. If you have aliases called 'dir', 'cd', 'set' and so on, don't forget to insert
  7419. an asterisk (*) before those commands.
  7420.  
  7421.  KV> What is the option /bad after the DIR-command ????
  7422.  
  7423. /B: single column of file names only
  7424. /AD: only files which have the Directory Attribute set
  7425.  
  7426.  KV> And what are these aliases supposed to do ???
  7427.  
  7428. DOWN: goes to the first subdirectory from the current directory (down the
  7429. tree).
  7430.  
  7431. NEXT: goes to next subdirectory after the current in the current directory's
  7432. parent directory (next branch in tree).
  7433.  
  7434. These (and UP) were little gems published as DEBUG scripts in some PC rag years
  7435. ago.  I thought it was time to finaly free up the clusters they occupied. :-)
  7436.  
  7437. seasonal greetings,
  7438.                     hugo
  7439. --- FastEcho 1.21
  7440.  * Origin: Zeg Nein tegen Die Niklaus, No tegen Santaclaus! (2:512/154.5)
  7441.  
  7442. ------------------------------------------------------------------------
  7443.  
  7444. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7445.  
  7446.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/10/1992
  7447.   To: ALL                             Num: 122        Date: 12/05/1992
  7448. From: TONY DUNLAP                      Re:            Time:  9:18 pm
  7449. Subj: Instructions for 4BOOT.BT      Prvt: N          Read: N
  7450.  
  7451. The listing for 4BOOT.BTM and 4BOOT.SYS are in the following message.
  7452.  
  7453. 4BOOT.BTM -- Multiple AUTOEXEC/CONFIG manager.
  7454.  
  7455. Initial release 12-05-92
  7456.  
  7457. WARNING! this btm will overwrite files. It may require
  7458. editing before use. Take the time to look it over so
  7459. you will understand how it works.
  7460.  
  7461. Questions? Suggestions?
  7462.  
  7463. Tony Dunlap
  7464. 1309 1/2 Hutchins
  7465. Portsmouth, Ohio  45662
  7466.  
  7467. You can also ask me in the Fidonet 4DOS echo.
  7468.  
  7469. Or send NETMAIL to Fidonet 1:2220/30 (2400 MNP)
  7470. The latest version will always be available for F'req
  7471. there as 4BOOT.ARJ or
  7472.  
  7473. Available via FREQ or first time callers from
  7474. The Outer Limits I (1:2220/10) at 1-614-772-5520
  7475. (USR Dual Standard) or The Outer Limits II
  7476. (1:2220/15) at 1-614-772-5583 (USR 14.4 HST).
  7477.  
  7478. Any ideas or suggestions are urged and welcome.
  7479.  
  7480. This BTM and accompanying files are designed to allow you
  7481. to have up to 19 separate AUTOEXEC/CONFIG configurations.
  7482.  
  7483. One feature is that if you don't choose, the BTM times out
  7484. in 15 seconds and reboots your computer with your default
  7485. configuration.
  7486.  
  7487. IMPORTANT: Before continuing, format a blank diskette with
  7488. DOS and a copy of your current AUTOEXEC.BAT and CONFIG.SYS
  7489. just in case something goes wrong (not likely but... you
  7490. know Murphy).
  7491.  
  7492. REQUIREMENTS:
  7493.  
  7494. 4DOS (of course!)
  7495.  
  7496. DOS 5 (I'm not sure if 4.xx supports the INSTALL command in
  7497. CONFIG.SYS)
  7498.  
  7499. An ANSI driver
  7500.  
  7501. Enough room on your hard drive for all the configurations you
  7502. want.
  7503.  
  7504. A "4START.BAT" (or .BTM) with the following line added to
  7505. the top if you already have one:
  7506.  
  7507. IF %_SHELL=0 COPY C:\4BOOT.SYS C:\CONFIG.SYS
  7508.  
  7509. =============================================
  7510.  
  7511. SETUP
  7512.  
  7513. Copy 4BOOT.BTM and 4BOOT.SYS to the root directory of C:
  7514.  
  7515. Copy your existing CONFIG.SYS to 4BOOT_A
  7516. Copy your existing AUTOEXEC.BAT to 4AUTO_A
  7517.  
  7518. Create up to 18 other configs and name them 4BOOT_B
  7519. through 4BOOT_R
  7520.  
  7521. Create up to 18 other autoexecs and name them 4AUTO_B
  7522. through 4AUTO_R
  7523.  
  7524. Modify 4BOOT.BTM to put in comments or reduce the number
  7525. of configurations.
  7526.  
  7527. Edit the ansi.sys line in 4BOOT.SYS to point to your favorite
  7528. Ansi program. If you use a COM ansi driver you will have to use
  7529. the INSTALL command instead of DEVICE.
  7530.  
  7531. If you are by chance shelling 4DOS to a ramdisk, you will also
  7532. have to put your ramdisk line in 4BOOT.SYS (preferably first).
  7533.  
  7534. Copy 4BOOT.SYS to CONFIG.SYS
  7535.  
  7536. Reboot your computer.
  7537.  
  7538. Thats it!
  7539.  
  7540. You can also run 4BOOT x (where x is the letter of the configuration you want
  7541. to boot with) from a batch file or the command line. For instance if you wanted
  7542. to defrag your bbs drive with no TSRs you might make that configuration "D"
  7543. where 4AUTO_D contained the command to defrag your drive on the first line and
  7544. "REBOOT" on the second. Then create 4BOOT_D with just a few files and buffers
  7545. and the shell line. You could then put in your nightly maintenance batch file:
  7546.  
  7547. 4BOOT D
  7548.  
  7549. Under a DESQVIEW environment, you may have to change the "reboot" commands in
  7550. 4BOOT.BTM to "reboot /c".
  7551.  
  7552. One minor problem to look out for is if you install software that modifies
  7553. config.sys or autoexec.bat. In this case you should copy your originals back to
  7554. C:\ before you do the install, then afterwards be sure to update all your
  7555. 4BOOT_* and 4AUTO_* files accordingly. Then copy 4BOOT.SYS to CONFIG.SYS and
  7556. reboot.
  7557.  
  7558. --- GEcho 1.00
  7559.  * Origin: DISCOVER (1:2220/30.1)
  7560.  
  7561. ------------------------------------------------------------------------
  7562.  
  7563. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7564.  
  7565.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/10/1992
  7566.   To: ALL                             Num: 123        Date: 12/05/1992
  7567. From: TONY DUNLAP                      Re:            Time:  9:18 pm
  7568. Subj: Listing for 4BOOT.BTM and      Prvt: N          Read: N
  7569.  
  7570. ::Start of 4BOOT.BTM
  7571. @echo off
  7572. if "%1" NE "" (set answ=%1 ^ goto ifparam)
  7573. setdos /S0:0
  7574. color bri yel on blu
  7575. :top
  7576. set answ=!!
  7577. cls
  7578. drawbox 0 0 24 63 2 BRI YEL ON BLU FILL BLU
  7579. drawhline 2 1 62 1 BRI YEL ON BLU
  7580. drawhline 22 1 62 1 BRI YEL ON BLU FILL BLU
  7581. screen 1 22 CONFIGURATION MENU
  7582. screen 3 2 A - Config 1 (this will be the default    )
  7583. screen 4 2 B - Config 2 (put a short description here)
  7584. screen 5 2 C - Config 3 (                            )
  7585. screen 6 2 D - Config 4 (                            )
  7586. screen 7 2 E - Config 5 (                            )
  7587. screen 8 2 F - Config 6 (                            )
  7588. screen 9 2 G - Config 7 (                            )
  7589. screen 10 2 H - Config 8 (                            )
  7590. screen 11 2 I - Config 9 (                            )
  7591. screen 12 2 J - Config 10 (                            )
  7592. screen 13 2 K - Config 11 (                            )
  7593. screen 14 2 L - Config 12 (                            )
  7594. screen 15 2 M - Config 13 (                            )
  7595. screen 16 2 N - Config 14 (                            )
  7596. screen 17 2 O - Config 15 (                            )
  7597. screen 18 2 P - Config 16 (                            )
  7598. screen 19 2 Q - Config 17 (                            )
  7599. screen 20 2 R - Config 18 (                            )
  7600. screen 21 2 R - Config 19 (                            )
  7601. screen 23 6 Press a letter or wait 15 seconds for the default.
  7602. inkey /w15 %%answ
  7603. :ifparam
  7604. if %@index[ABCDEFGHIJKLMNOPQR,%answ] EQ -1 set answ=A
  7605. if exist c:\4boot_%answ goto pick
  7606. cls
  7607. echo No matching configuration (%answ) found. (Wait 5 seconds.)
  7608. delay 5
  7609. goto top
  7610. :pick
  7611. *copy c:\4boot_%answ c:\config.sys>NUL
  7612. *copy c:\4auto_%answ c:\autoexec.bat>NUL
  7613. reboot
  7614. ::End of 4BOOT.BTM
  7615.  
  7616. ::Start of 4BOOT.SYS
  7617. DEVICE=C:\SYS\ZANSI.SYS
  7618. INSTALL=C:\4DOS\4DOS.COM C:\4DOS /CC:\4BOOT.BTM
  7619. ::End of 4BOOT.SYS
  7620.  
  7621. --- GEcho 1.00
  7622.  * Origin: DISCOVER (1:2220/30.1)
  7623.  
  7624. ------------------------------------------------------------------------
  7625.  
  7626. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7627.  
  7628.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/10/1992
  7629.   To: ALL                             Num: 132        Date: 12/08/1992
  7630. From: SAUL LEVY                        Re:            Time:  3:34 am
  7631. Subj: USAGE2.BTM                     Prvt: N          Read: N
  7632.  
  7633. All,
  7634.  
  7635. Here's a bit of a modification to Tony Dunlap's USAGE.BTM (given 
  7636. as a DEBUG script):
  7637.  
  7638.  
  7639. ===============================CUT HERE===============================
  7640.  N USAGE2.BTM
  7641.  E 0100 52 45 4D 20 55 53 41 47 45 32 2E 42 54 4D 0D 0A 52 45 4D 20 4F
  7642.  E 0115 72 69 67 69 6E 61 6C 20 62 79 20 54 6F 6E 79 20 44 75 6E 6C 61
  7643.  E 012A 70 0D 0A 52 45 4D 20 41 64 64 69 74 69 6F 6E 73 20 62 79 20 53
  7644.  E 013F 61 75 6C 20 4C 65 76 79 2C 20 63 6F 6C 6F 72 20 61 6E 64 20 64
  7645.  E 0154 65 66 61 75 6C 74 20 64 72 69 76 65 20 6C 65 74 74 65 72 0D 0A
  7646.  E 0169 52 45 4D 0D 0A 53 45 54 4C 4F 43 41 4C 0D 0A 53 45 54 20 41 3D
  7647.  E 017E B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7648.  E 0193 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7649.  E 01A8 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0
  7650.  E 01BD B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 B0 0D 0A 53 45
  7651.  E 01D2 54 20 42 3D DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7652.  E 01E7 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7653.  E 01FC DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7654.  E 0211 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB
  7655.  E 0226 0D 0A 53 45 54 20 44 55 53 41 47 45 3D 25 40 53 55 42 53 54 52
  7656.  E 023B 5B 25 42 2C 30 2C 25 40 49 4E 54 5B 25 40 45 56 41 4C 5B 2E 38
  7657.  E 0250 2A 25 40 44 49 53 4B 55 53 45 44 5B 25 31 2C 4B 5D 2F 25 40 44
  7658.  E 0265 49 53 4B 54 4F 54 41 4C 5B 25 31 2C 4B 5D 2A 31 30 30 5D 5D 5D
  7659.  E 027A 0D 0A 53 45 54 20 44 55 53 41 47 45 3D 25 44 55 53 41 47 45 25
  7660.  E 028F 25 40 53 55 42 53 54 52 5B 25 41 2C 30 2C 25 40 45 56 41 4C 5B
  7661.  E 02A4 38 30 2D 25 40 4C 45 4E 5B 25 44 55 53 41 47 45 5D 5D 5D 0D 0A
  7662.  E 02B9 43 4F 4C 4F 52 20 42 52 49 47 48 54 20 52 45 44 20 4F 4E 20 42
  7663.  E 02CE 4C 55 45 0D 0A 49 46 46 20 22 25 31 22 3D 22 22 20 54 48 45 4E
  7664.  E 02E3 0D 0A 20 20 20 45 43 48 4F 20 44 52 49 56 45 20 25 5F 44 49 53
  7665.  E 02F8 4B 3A 0D 0A 45 4C 53 45 0D 0A 20 20 20 45 43 48 4F 20 44 52 49
  7666.  E 030D 56 45 20 25 40 55 50 50 45 52 5B 25 31 5D 0D 0A 45 4E 44 49 46
  7667.  E 0322 46 0D 0A 43 4F 4C 4F 52 20 47 52 45 45 4E 20 4F 4E 20 42 4C 55
  7668.  E 0337 45 0D 0A 45 43 48 4F 53 20 25 44 55 53 41 47 45 0D 0A 43 4F 4C
  7669.  E 034C 4F 52 20 42 52 49 47 48 54 20 59 45 4C 4C 4F 57 20 4F 4E 20 42
  7670.  E 0361 4C 55 45 0D 0A 45 43 48 4F 53 20 C3 C4 C4 C4 C4 C4 C4 C5 C4 C4
  7671.  E 0376 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C4
  7672.  E 038B C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4
  7673.  E 03A0 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4
  7674.  E 03B5 C4 C4 C4 C4 C4 C4 B4 0D 0A 45 43 48 4F 53 20 31 20 20 20 20 20
  7675.  E 03CA 31 30 20 20 20 20 20 20 32 30 20 20 20 20 20 20 33 30 20 20 20
  7676.  E 03DF 20 20 20 34 30 20 20 20 20 20 20 35 30 20 20 20 20 20 20 36 30
  7677.  E 03F4 20 20 20 20 20 20 37 30 20 20 20 20 20 20 38 30 20 20 20 20 20
  7678.  E 0409 20 39 30 20 20 20 20 20 31 30 30 0D 0A 45 43 48 4F 2E 0D 0A 43
  7679.  E 041E 4F 4C 4F 52 20 42 52 49 47 48 54 20 52 45 44 20 4F 4E 20 42 4C
  7680.  E 0433 55 45 0D 0A 45 43 48 4F 20 44 4F 53 20 4D 45 4D 4F 52 59 0D 0A
  7681.  E 0448 53 45 54 20 4D 55 53 41 47 45 3D 25 40 53 55 42 53 54 52 5B 25
  7682.  E 045D 42 2C 30 2C 25 40 49 4E 54 5B 25 40 45 56 41 4C 5B 38 30 2D 28
  7683.  E 0472 2E 38 2A 25 40 44 4F 53 4D 45 4D 5B 4B 5D 2F 36 34 30 2A 31 30
  7684.  E 0487 30 29 5D 5D 5D 0D 0A 53 45 54 20 4D 55 53 41 47 45 3D 25 4D 55
  7685.  E 049C 53 41 47 45 25 25 40 53 55 42 53 54 52 5B 25 41 2C 30 2C 25 40
  7686.  E 04B1 45 56 41 4C 5B 38 30 2D 25 40 4C 45 4E 5B 25 4D 55 53 41 47 45
  7687.  E 04C6 5D 5D 5D 0D 0A 43 4F 4C 4F 52 20 43 59 41 4E 20 4F 4E 20 42 4C
  7688.  E 04DB 55 45 0D 0A 45 43 48 4F 53 20 25 4D 55 53 41 47 45 0D 0A 43 4F
  7689.  E 04F0 4C 4F 52 20 42 52 49 47 48 54 20 59 45 4C 4C 4F 57 20 4F 4E 20
  7690.  E 0505 42 4C 55 45 0D 0A 45 43 48 4F 53 20 C3 C4 C4 C4 C4 C4 C4 C5 C4
  7691.  E 051A C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4
  7692.  E 052F C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4
  7693.  E 0544 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5 C4 C4 C4 C4 C4 C4 C4 C5
  7694.  E 0559 C4 C4 C4 C4 C4 C4 C4 B4 0D 0A 45 43 48 4F 53 20 31 20 20 20 20
  7695.  E 056E 20 31 30 20 20 20 20 20 20 32 30 20 20 20 20 20 20 33 30 20 20
  7696.  E 0583 20 20 20 20 34 30 20 20 20 20 20 20 35 30 20 20 20 20 20 20 36
  7697.  E 0598 30 20 20 20 20 20 20 37 30 20 20 20 20 20 20 38 30 20 20 20 20
  7698.  E 05AD 20 20 39 30 20 20 20 20 20 31 30 30 0D 0A 43 4F 4C 4F 52 20 57
  7699.  E 05C2 48 49 54 45 20 4F 4E 20 42 4C 55 45 0D 0A 45 4E 44 4C 4F 43 41
  7700.  E 05D7 4C 0D 0A
  7701.  RCX
  7702.  04DA
  7703.  W
  7704.  Q
  7705. ===============================CUT HERE===============================
  7706.  
  7707.  
  7708. Extract this file as USAGE2.SCR and use DEBUG <USAGE2.SCR to 
  7709. recreate USAGE2.BTM.
  7710.  
  7711. I added color and include the default disk drive (if you don't 
  7712. add x: when running this batch file.  It looks very nice (change 
  7713. the colors to suit yourself).  Thanks Tony!
  7714.  
  7715. Saul
  7716.  
  7717.  
  7718. --- QM v1.30/b 
  7719.  * Origin: Bigfoot's RBBS - Tucson,AZ - HST - (8:902/1) or (1:300/11.0)
  7720.  
  7721. ------------------------------------------------------------------------
  7722.  
  7723. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7724.  
  7725.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/11/1992
  7726.   To: JAN VANHOOF                     Num: 120        Date: 12/09/1992
  7727. From: MAYNARD HOGG                     Re:            Time:  5:16 am
  7728. Subj: Men.Btm                        Prvt: N          Read: N
  7729.  
  7730. JV>     iff %_dow eq Sun then scrput 3 60 bright yellow on blue Sunday
  7731.   >else iff %_dow eq Mon then scrput 3 60 bright yellow on blue Monday
  7732.   >else iff %_dow eq Tue then scrput 3 60 bright yellow on blue Tuesday
  7733.   >else iff %_dow eq Wed then scrput 3 60 bright yellow on blue Wednesday
  7734.   >else iff %_dow eq Thu then scrput 3 60 bright yellow on blue Thursday
  7735.   >else iff %_dow eq Fri then scrput 3 60 bright yellow on blue Friday
  7736.   >else iff %_dow eq Sat then scrput 3 60 bright yellow on blue Saturday
  7737.         ^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  7738.   >endiff
  7739.  
  7740. Two quick comments addressed not just to you but to TERRY PINTO (who
  7741. posted SYSTEM.BTM in early November) and others.
  7742.  
  7743. (1) Please use environment variables for the color scheme--standard
  7744.     programming practise: a. to save yourself typing, b. in the
  7745.     interests of consistency, c. make it easier on those who still use
  7746.     B&W (on laptops, in particular) or don't happen to agree with your
  7747.     "tropical fruit salad" choice of colors.
  7748.  
  7749. e.g. set byob=bri yel on blu
  7750.      set byox=bri yel on bla
  7751.  
  7752. (2) The highly repetitive nature of the lines in the block should warn
  7753.     you that you're doing something wrong (i.e. inefficiently). You
  7754.     can start by factoring out the SCRPUT part.
  7755.  
  7756.      iff %_dow eq Sun then set day=Sunday
  7757. else iff %_dow eq Mon then set day=Monday
  7758. else iff %_dow eq Tue then set day=Tuesday
  7759. else iff %_dow eq Wed then set day=Wednesday
  7760. else iff %_dow eq Thu then set day=Thursday
  7761. else iff %_dow eq Fri then set day=Friday
  7762. else iff %_dow eq Sat then set day=Saturday
  7763. endiff
  7764. scrput 3 60 %byob %day
  7765.  
  7766.     If you want to get fancy, try the following one-line version.
  7767.  
  7768. for %x in (Sunday Monday Tuesday Wednesday Thursday Friday Saturday)
  7769.   if %@substr[%x,0,3]==%_dow set day=%x
  7770.  
  7771.  -- SPEED 1.10 [NR]:
  7772. --- GEcho 1.00/beta+
  7773.  * Origin: SuperBBS Support/Sales/Beta Avxia_bbs Tokyo Line 1 (6:730/9)
  7774. 
  7775. ------------------------------------------------------------------------
  7776.  
  7777. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7778.  
  7779.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/14/1992
  7780.   To: ARIE RIETKERK                   Num: 43         Date: 12/08/1992
  7781. From: HENK SIMMELINK                   Re:            Time:  4:56 pm
  7782. Subj: 0 bytes files                  Prvt: N          Read: N
  7783.  
  7784. Hello Arie!
  7785.  
  7786. Saturday December 05 1992, Arie Rietkerk writes to All:
  7787.  
  7788.  AR> Does anybody know a option in 4dos to delete only 0 bytes files in a
  7789.  AR> directory, del ??????
  7790.  
  7791. Hmm, I think you should use SST for this...
  7792. But if you ensist on using 4DOS, you could use this:
  7793. for %f in (*.*) (if %@filesize[%f,b] == 0 del /n %f)
  7794. rem                                           ^^ remove this if you have
  7795. rem                                              convinced you're self.. :-)
  7796.  
  7797. Yours sincerely,
  7798. Henk `HeSitated' Simmelink
  7799.  
  7800. --- GEcho 1.00/beta+
  7801.  * Origin:   (2:283/4.6)
  7802.  
  7803. ------------------------------------------------------------------------
  7804.  
  7805. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7806.  
  7807.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/14/1992
  7808.   To: MAYNARD HOGG                    Num: 76         Date: 12/10/1992
  7809. From: DENNIS MCCUNNEY                  Re:            Time:  8:48 pm
  7810. Subj: Binary Search                  Prvt: N          Read: N
  7811.  
  7812.  ** From Maynard Hogg to Phi Nguyen on 07 Dec 92  13:37:03
  7813.  ** Subj: Binary Search
  7814.  
  7815.  PN>I even write binary search routine in 4DOS BTM which is very
  7816.  PN>similiar to PASCAL, C language. You want me to post the search routine?
  7817.  
  7818.  MH> Yes, please. (In chunks under 100 lines, pending arrival of a better
  7819.  MH> mail reader. <g>)
  7820.  
  7821.  -Area: 4DOS Echo (FidoNet) --------------------------------------------
  7822.   Msg#: 192                                          Date: 17 Sep 92  00:56:00
  7823.   From: Phi Nguyen                                   Read: Yes    Replied: No
  7824.     To: All                                          Mark:
  7825.   Subj: Binary search
  7826.  -----------------------------------------------------------------------
  7827. I asked several people on how to search a TXT file in 4DOS and got many
  7828. responds. I think most of them deal with linear search which is very slow!
  7829. Since my txt file contained all filenames which are already sorted, so I figure
  7830. the best way to do this is with binary search.
  7831.  
  7832. Here is what I got after translated a routine from PASCAL to 4DOS:
  7833.  
  7834.     setlocal
  7835.     iff "%1" eq "" then
  7836.         input Type in filename to search: %%filename
  7837.     else
  7838.         set filename=%1
  7839.     endiff
  7840.     set filename=%@lower[%filename]
  7841.     set file=DOWNLOAD.DAT
  7842.     set bottom=1
  7843.     set top=%@lines[%file]
  7844.     if %top lt 0 quit 2
  7845.  
  7846. :LOOP
  7847.     iff %top GT %bottom then
  7848.         set middle=%@int[%@eval[(%top+%bottom)/2]]
  7849.         set linein=%@lower[%@line[%file,%middle]]
  7850.         iff %filename EQ %linein then
  7851.             endlocal
  7852.             quit 1
  7853.         elseiff %filename GT %linein then
  7854.             set bottom=%@eval[%middle+1]
  7855.         else
  7856.             set top=%middle
  7857.         endiff
  7858.         goto loop
  7859.     endiff
  7860.  
  7861.     iff %top EQ 0 then
  7862.         endlocal
  7863.         quit 2
  7864.     elseiff %filename EQ %linein then
  7865.         endlocal
  7866.         quit 1
  7867.     else
  7868.         endlocal
  7869.         quit 2
  7870.     endiff
  7871.  
  7872. -!!!!!!!!!!-
  7873.  
  7874. It is not perfect yet but it does work!
  7875. I used this routine to check for a filename in DOWNLOAD.DAT to see if I already
  7876. downloaded a file or not. It's very useful if you are collecting GIFs!!!
  7877.  
  7878. If you think you can make it work better, please do just that and let me know.
  7879.  
  7880. Thank
  7881.  
  7882. Phi
  7883.  
  7884.  
  7885.  
  7886. --- Blue Wave/Max v2.11 [NR]
  7887.  * Origin: * BlueDog BBS * (212) 594-4425 * NYC FileBone Hub (1:278/709.0)
  7888.  
  7889. ------------------------------------------------------------------------
  7890.  
  7891. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7892.  
  7893.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/14/1992
  7894.   To: DAN SCHOR                       Num: 79         Date: 12/11/1992
  7895. From: DENNIS MCCUNNEY                  Re:            Time:  8:25 pm
  7896. Subj: File delete problem            Prvt: N          Read: N
  7897.  
  7898.  ** From Dan Schor to All on 05 Dec 92  15:49:16
  7899.  ** Subj: File delete problem
  7900.  
  7901.  DS> I'm looking for a way to delete the oldest of a certain type of files.
  7902.  DS> For the program or batch file, the specified information would be the
  7903.  DS> filename (with wildcards) and the number of updates to keep.  For
  7904.  DS> example:
  7905.  
  7906.  DS> KeepLast nodediff.a?? 4
  7907.  
  7908.  DS> would keep the last (newest) files which fit into the type
  7909.  DS> nodediff.a??.  Any ideas?
  7910.  
  7911.     Untested, but something like this should be a start.
  7912.  
  7913.  :  keeplast.btm - keep last X versions of files
  7914.     @echo off
  7915.  
  7916.     iff "%2"=="" then
  7917.         echo Syntax %0 [filespec] [number]
  7918.         quit
  7919.     endiff
  7920.  
  7921.     if "%TEMP"=="" set TEMP=%_CWD
  7922.  
  7923.     : get files in date order
  7924.     dir /b /od %1 > %TEMP%\filelist.$$$
  7925.     set numfiles=%@lines[%TEMP\filelist.$$$]
  7926.     set kill=%@eval[%numfiles-%2]
  7927.     set count=1
  7928.  
  7929.  :loop
  7930.     set oldfile=%@line[%TEMP\filelist.$$$,%count]
  7931.     del %oldfile
  7932.     set count=%@eval[%count+1]
  7933.     iff %count eq %kill then
  7934.         echo %0 done
  7935.         del %TEMP\filelist.$$$
  7936.         unset numfiles kill oldfile count
  7937.         quit
  7938.     else
  7939.         goto loop
  7940.     endiff
  7941.  
  7942.  
  7943.  
  7944. --- Blue Wave/Max v2.11 [NR]
  7945.  * Origin: * BlueDog BBS * (212) 594-4425 * NYC FileBone Hub (1:278/709.0)
  7946.  
  7947. ------------------------------------------------------------------------
  7948.  
  7949. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  7950.  
  7951.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/14/1992
  7952.   To: DAN SCHOR                       Num: 96         Date: 12/12/1992
  7953. From: TOM BAILEY                       Re:            Time:  3:04 pm
  7954. Subj: File delete problem            Prvt: N          Read: N
  7955.  
  7956.     Greetings Dan,
  7957.  
  7958.     On Saturday December 05 1992, Dan Schor wrote to All:
  7959.  
  7960.  DS> Hi folks...
  7961.  
  7962.  DS> I'm looking for a way to delete the oldest of a certain type of files.
  7963.  DS> For the program or batch file, the specified information would be the
  7964.  DS> filename (with wildcards) and the number of updates to keep.  For
  7965.  DS> example:
  7966.  
  7967.  DS> KeepLast nodediff.a?? 4
  7968.  
  7969.  DS> would keep the last (newest) files which fit into the type
  7970.  DS> nodediff.a??.  Any ideas?
  7971.  
  7972. Sure, basically you can just write a directory listing of the files to a temp
  7973. file sorted inversely by date (the default) and using @%line[] check if there
  7974. are indeed more than X files in the list. If so start at filename number X+1
  7975. and delete them, try something like this:
  7976. --------------------
  7977. : Keeplast.BTM
  7978. : Call this with the file mask you want to delete as the first parameter and
  7979. the number to keep as the second.
  7980. :
  7981. @Loadbtm on
  7982. @iff not "%1" GT "" Then
  7983. @Echo You must specify a file mask for this batch file.
  7984. @beep
  7985. @goto end
  7986. @Endiff
  7987. @iff not "%2" GT "0" Then
  7988. @Echo You must supply a numeric argument for the second parameter.
  7989. @beep
  7990. @goto end
  7991. @Endiff
  7992. : Just so we don't accidentally delete all files except the first %2+1 :)
  7993. : That might be fun...
  7994. @if exist \tempfile delete \tempfile
  7995. : Keep temp's in the root directory
  7996. @Dir %1 /Od /bf>\tempfile
  7997. @Set count=%@eval[%2 + 1]
  7998. :Modify the initial count value to # of files you want to keep plus one
  7999. :loop
  8000. @Iff "%@line[tempfile,%count]" GT "" Then
  8001. @Del %@line[tempfile,%count]
  8002. :  Above you could optionally write the output to the null for a quiet delete
  8003. @Set count=%@eval[%count + 1]
  8004. @Goto Loop
  8005. : Yes, jumping out of an if is perfectly acceptable!
  8006. @Endiff
  8007. :end
  8008. @if exist \tempfile delete \tempfile^unset count>&nul
  8009. : Clean up any messes we made in the root dir and remove our temp variable for
  8010. counting.
  8011. @Echo Done.
  8012. --------------
  8013. This is untested but I know it do what you asked.  If you get confused read
  8014. through the docs for the "dir" command and the "%@line[]" and "%@eval[]"
  8015. functions.  Others will probably post other solutions to the same problem,
  8016. should be interesting.
  8017.                                 Regards,
  8018.                                 -TB
  8019.  
  8020. --- GEcho 1.00
  8021.  * Origin: ...and love lies bleeding in my hand... (FidoNet 1:105/62.69)
  8022.  
  8023. ------------------------------------------------------------------------
  8024.  
  8025. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8026.  
  8027.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/16/1992
  8028.   To: GUILLAUME LE ROYER              Num: 83         Date: 12/13/1992
  8029. From: ERIC THAV                        Re:            Time:  7:10 pm
  8030. Subj: Day of Week                    Prvt: N          Read: N
  8031.  
  8032. GL>     I'm looking for a batch file (With 4DOS) which execute different
  8033. GL> programm depending of the day of the week ?
  8034.  
  8035. I believe the easiest way is to create batch files by the name of
  8036. MON.BTM, TUE.BTM, WED.BTM, THU.BTM, FRI.BAT, SAT.BTM, SUN.BTM (with each
  8037. batch file containing the program that you want to execute for each day
  8038. of the week) and then create one batch file called DOTHIS.BTM (for
  8039. example) that contains only the following line:
  8040.  
  8041. %_DOW
  8042.  
  8043. The %_DOW is a 4DOS internal variable that returns the day of the week
  8044. (Mon for Monday, Tue for Tuesday, so on and so forth).  So, whenever you
  8045. run DOTHIS.BTM, it would execute the correct batch file for the current
  8046. day of the week.
  8047.  
  8048. I hope this helps.
  8049.  
  8050.                                                         /* Eric */
  8051.  
  8052. ...MegaMail 2.10 #1573.If this were an actual tagline, it would be funny.
  8053.  
  8054.  
  8055. --- WM v2.05/92-0311
  8056.  * Origin: Silicon Beach 305-474-6512 USR DS (1:369/68)
  8057.  
  8058. ------------------------------------------------------------------------
  8059.  
  8060. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8061.  
  8062.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/17/1992
  8063.   To: ALL                             Num: 171        Date: 12/15/1992
  8064. From: JOHN SUTCLIFFE                   Re:            Time: 11:46 pm
  8065. Subj: ANSI detection                 Prvt: N          Read: N
  8066.  
  8067. This assembler file might help those who need a means of checking for a
  8068. resident ANSI driver. It assembles and links to a 56-byte .COM file that
  8069. can be called from within a 4DOS batch file and sets the Errorlevel to 1
  8070. if an ANSI driver is present.
  8071.  
  8072. ; Program   ANSIchek
  8073. ; Purpose   Check for ANSI driver
  8074. ; Input     None
  8075. ; Output    ERRORLEVEL 1 for yes or 0 for no
  8076.  
  8077. cseg      segment
  8078.           assume cs:cseg, ds:cseg      ;Standard .COM setup
  8079.           org    100h
  8080.  
  8081. ANSIchek  proc   far
  8082.  
  8083. curpos    db     27,'[6n$'         ;ANSI string to get current position
  8084. delete    db     8,8,8,8,'$'       ;4 backspaces to delete ANSI string
  8085.  
  8086. start:    mov    ax,0C06h          ;Clear the keyboard buffer
  8087.           mov    dl,0FFh
  8088.           int    21h
  8089.  
  8090.           mov    dx,offset curpos  ;Print an ANSI string to get the cursor
  8091.           mov    ah,09h            ; position. If ANSI is enabled, this will
  8092.           int    21h               ; output the position to the console.
  8093.  
  8094.           mov    ah,06h            ;Check whether the keyboard buffer has
  8095.           mov    dl,0FFh           ; been written to.
  8096.           int    21h
  8097.           jnz    enabled           ;If it has, ANSI is enabled.
  8098.  
  8099.           mov    dx,offset delete  ;ANSI is not enabled, so delete our
  8100.           mov    ah,09h            ; string from the screen
  8101.           int    21h
  8102.           sub    al,al             ;Exit code = 0 for no ANSI
  8103.           jmp    short seterror
  8104.  
  8105. enabled:  mov    ax,0C06h          ;Clear returned ANSI keys out of buffer
  8106.           mov    dl,0FFh
  8107.           int    21h
  8108.           mov    al,1              ;Exit code = 1 for ANSI enabled
  8109.  
  8110. seterror: mov    ah,4Ch            ;Exit with ERRORLEVEL set
  8111.           int    21h
  8112.  
  8113. ANSIchek  endp
  8114.  
  8115. cseg      ends
  8116.           end    start
  8117.  
  8118. I hope this might help.
  8119.  
  8120. John.
  8121. --- GEcho 1.00/beta+
  8122.  * Origin: INDEX III - Nottm UK - +44-602-855607/61 - (2:250/413)
  8123.  
  8124. ------------------------------------------------------------------------
  8125.  
  8126. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8127.  
  8128.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/17/1992
  8129.   To: GUILLAUME LE ROYER              Num: 102        Date: 12/14/1992
  8130. From: JAY CURRY                        Re:            Time:  9:54 pm
  8131. Subj: Day of Week                    Prvt: N          Read: N
  8132.  
  8133.  -=> Quoting Guillaume Le Royer to all <=-
  8134.  
  8135.  GLR> Hello All,
  8136.  
  8137.  GLR> I'm looking for a batch file (With 4DOS) which execute different
  8138.  GLR> programm depending of the day of the week ?
  8139.  GLR> Does anyone know a way to do that ?
  8140.  
  8141. something like :
  8142.  
  8143. dayrunr.btm
  8144.  
  8145. @echo off
  8146. goto %_dow
  8147. echo not running 4dos
  8148. goto done
  8149. :0
  8150. rem replace with call for batch file for sunday
  8151. goto done
  8152. :1
  8153. rem replace with call for batch file for monday
  8154. goto done
  8155. :2
  8156. rem replace with call for batch file for tuesday
  8157. goto done
  8158. :3
  8159. rem replace with call for batch file for wednesday
  8160. goto done
  8161. :4
  8162. rem replace with call for batch file for thursday
  8163. goto done
  8164. :5
  8165. rem replace with call for batch file for friday
  8166. goto done
  8167. :6
  8168. rem replace with call for batch file for saturday
  8169. :done
  8170. quit
  8171.  
  8172.  
  8173. Alternatively you could name appropriate batchfiles as day0.btm,
  8174. day1.btm, etc.  Then call it with a CALL DAY%_DOW.
  8175.  
  8176. You will probably get several responses to this.
  8177.  
  8178. -Jay
  8179.  
  8180. ... The OFFICIAL tagline of the 1996 Olympics!
  8181. --- FMail 0.92
  8182.  * Origin: Le Cross Roads 608-788-8086 USR/DS LaCrosse, WI (1:2360/12.0)
  8183.  
  8184. ------------------------------------------------------------------------
  8185.  
  8186. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8187.  
  8188.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/17/1992
  8189.   To: ALL                             Num: 161        Date: 12/14/1992
  8190. From: SCOTT WUNSCH                     Re:            Time:  4:19 pm
  8191. Subj: Here we go again - v2.04       Prvt: N          Read: N
  8192.  
  8193. Salutations, All!
  8194.  
  8195.   Ok, let's give this one more shot.  This time it _should_ (oh brother ;))
  8196. identify the date format being used, and show the date appropriately.
  8197.  
  8198. _______O_/___________________| SNIP |___________________\_O_______
  8199.        O \                   | HERE |                   / O
  8200.  
  8201. @ECHO OFF
  8202. : * * * * * * * * * * [ SHELL.BTM v2.04 ] * * * * * * * * *
  8203. : *               4DOS Prompt Shell Batch File            *
  8204. : *                                                       *
  8205. : *   Originally by Mark Stiebel (3:633/159) -- 05/10/92  *
  8206. : *  Revised by Scott Wunsch (1:140/23.1701) -- 14-Dec-92 *
  8207. : *                                                       *
  8208. : *   Description: SHELL.BTM will keep looping, updating  *
  8209. : *                the prompt every second or so.         *
  8210. : *                Commands and aliases are entered as    *
  8211. : *                usual, and are added to the command    *
  8212. : *                history.                               *
  8213. : *                                                       *
  8214. : *             Commands while in SHELL.BTM:              *
  8215. : *             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~              *
  8216. : *             ON - Turn the Status Line ON              *
  8217. : *            OFF - Turn the Status Line OFF             *
  8218. : *            END - Quit SHELL.BTM                       *
  8219. : *                                                       *
  8220. : *           Anything else will run as it would          *
  8221. : *            from a normal 4DOS command line.           *
  8222. : *                                                       *
  8223. : *                     New Features:                     *
  8224. : *                    ~~~~~~~~~~~~~~~                    *
  8225. : *   Handles multi-command  lines (using "^") and other  *
  8226. : *   embedded commands the previous version would choke  *
  8227. : *   on.   Special  commands  now  implemented  through  *
  8228. : *   aliases.  Automatically identifies the date format  *
  8229. ; *   being used and adapts.  Plus, it might even work!   *
  8230. : *                                      :-)              *
  8231. : * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  8232. SETLOCAL
  8233. Set _SL=1
  8234. Set _FL=0
  8235. Set _ST=%@EVAL[%_ST+1]
  8236. SET CursorStyle=100:1
  8237. ALIAS ON=SET _SL=1
  8238. ALIAS OFF=SET _SL=0
  8239. ALIAS END=SET _GOOD=BYE
  8240. IFF %@DATE[01-02-03] == 8434 THEN
  8241.   SET _DD=0^SET _DM=3
  8242. ELSEIFF %@DATE[01-02-03] == 8402 THEN
  8243.   SET _DD=3^SET _DM=0
  8244. ELSEIFF %@DATE[01-02-03] == 7704 THEN
  8245.   SET _DD=6^SET _DM=3
  8246. ENDIFF
  8247.  
  8248. :MainLoop
  8249. Set _cmd=%@CHAR[32]
  8250. if %_CWDS == %cudir goto nochange
  8251. set cudir=%_CWDS
  8252. pushd
  8253. :nochange
  8254.  
  8255. IF '%_SL' == '0' GOTO NoStat
  8256. Setdos /s0:0
  8257.  
  8258. IFF %@DISKFREE[%_DISK:,M] LT 1 THEN^SET _CLR1=%@CHAR[27][0;31;46m^...
  8259. ...ELSE^SET _CLR1=%@CHAR[27][34m^ENDIFF
  8260. IFF %@DOSMEM[k] LT 400 THEN^SET _CLR2=%@CHAR[27][0;31;46m^ELSE^SET...
  8261. ... _CLR2=%@CHAR[27][34m^ENDIFF
  8262. IFF %@EMS[K] LT 500 THEN^SET _CLR3=%@CHAR[27][0;31;46m^ELSE^SET ...
  8263. ..._CLR3=%@CHAR[27][34m^ENDIFF
  8264. IFF %_SHELL GT 0 THEN^SET _CLR4=%@CHAR[27][0;31;46m^ELSE^SET ...
  8265. ..._CLR4=%@CHAR[27][34m^ENDIFF
  8266. IFF %_ST GT 1 THEN^SET _CLR5=%@CHAR[27][0;31;46m^ELSE^SET _CLR5=...
  8267. ...%@CHAR[27][34m^ENDIFF
  8268.  
  8269. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][K
  8270. echos %@CHAR[27][1;30m[%@CHAR[27][34m%@SUBSTR[%_DATE,%_DD,2]/
  8271. echos %@WORD[%@SUBSTR[%_DATE,%_DM,2],x Jan Feb Mar Apr May Jun Jul Aug...
  8272. ...Sep Oct Nov Dec]
  8273. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m][
  8274. echos %_DISK:%_CLR1%%@DISKFREE[%_DISK:,K]Kb%@CHAR[27][1;30m][Mem:%_CLR2%
  8275. echos %@DOSMEM[K]Kb%@CHAR[27][1;30m][EMS:%_CLR3%%@EMS[K]Kb
  8276. echos %@CHAR[27][1;30m][Extended:%@CHAR[27][34m%@EXTENDED[K]Kb
  8277. echos %@CHAR[27][1;30m][Shell:%_CLR4%%_SHELL%%@CHAR[27][1;30m/%_CLR5%
  8278. echos %@EVAL[%_ST-1]%@CHAR[27][1;30m]
  8279. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  8280. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  8281. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  8282. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  8283. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  8284. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  8285. echos %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`| >`
  8286. SETDOS /S100:1
  8287. GOTO SubLoop
  8288.  
  8289. :SubLoop
  8290. IF '%_SL' == '0' GOTO NoStat
  8291. Setdos /s0:0
  8292. echos %@CHAR[27][s%@CHAR[27][H%@CHAR[27][1;30;46m%@CHAR[27][1;30m[
  8293. echos %@CHAR[27][34m%@SUBSTR[%_DATE,%_DD,2]/
  8294. echos %@WORD[%@SUBSTR[%_DATE,%_DM,2],x Jan Feb Mar Apr May Jun Jul Aug...
  8295. ...Sep Oct Nov Dec]
  8296. echos %@CHAR[27][1;30m][%@CHAR[27][34m%_TIME%%@CHAR[27][1;30m]
  8297. echos %@CHAR[27][u%@CHAR[27][0;1;33m
  8298. IF %_FL == 0 (ECHOS %@CHAR[27][3D`|\>`%@CHAR[27][33m ^ SET _FL=1)
  8299. IF %_FL == 1 (ECHOS %@CHAR[27][3D`||>`%@CHAR[27][33m ^ SET _FL=2)
  8300. IF %_FL == 2 (ECHOS %@CHAR[27][3D`|/>`%@CHAR[27][33m ^ SET _FL=3)
  8301. IF %_FL == 3 (ECHOS %@CHAR[27][3D`|->`%@CHAR[27][34m ^ SET _FL=0)
  8302. SETDOS /S%CursorStyle
  8303. GOTO IP
  8304.  
  8305. :NoStat
  8306. IF %_DISK == A ECHOS %@CHAR[27][0;37m
  8307. IF %_DISK == B ECHOS %@CHAR[27][0;32m
  8308. IF %_DISK == C ECHOS %@CHAR[27][0;35m
  8309. IF %_DISK == D ECHOS %@CHAR[27][0;36m
  8310. IF %_DISK == E ECHOS %@CHAR[27][0;33m
  8311. IF %_DISK == F ECHOS %@CHAR[27][0;1;30m
  8312. ECHOS %@CHAR[27][%_ROWS;1H%_CWDS%%@CHAR[27][1;33m`|`
  8313. echos %@CHAR[240]`>`%@CHAR[27][34m
  8314.  
  8315. :IP
  8316. INPUT /w0 %%_cmd
  8317. :Execute
  8318. History /A %_cmd
  8319. CALL %_cmd
  8320. IF "%_GOOD" == "BYE" (SET _ST=%@EVAL[%_ST-1]^UNSET _GOOD^ENDLOCAL^QUIT)
  8321. IF "%@READSCR[0,0,1]" == "[" GOTO SubLoop
  8322. GOTO MainLoop
  8323.  
  8324. :NoHist
  8325. CALL %@SUBSTR[%_cmd,1]
  8326. GOTO MainLoop
  8327.  
  8328. _______O_/___________________| SNIP |___________________\_O_______
  8329.        O \                   | HERE |                   / O
  8330.  
  8331.   And let's hope I did _something_ right this time ;).
  8332.  
  8333.  
  8334.                                                /\   LLAP...
  8335.                                              > \ cott \\'unsch <
  8336.                                               \/
  8337.  
  8338.  
  8339.  
  8340.            >> Message length exceeded, split by WILDMAIL! v2.05 <<
  8341.                         >> Continued in next message <<
  8342.  
  8343. ------------------------------------------------------------------------
  8344.  
  8345. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8346.  
  8347.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/19/1992
  8348.   To: WILLIAM HUGHES                  Num: 120        Date: 12/13/1992
  8349. From: DAYTON LIVINGSTON                Re:            Time:  3:19 pm
  8350. Subj: %@SUBSTR tip - Filenames       Prvt: N          Read: N
  8351.  
  8352. ** From: William Hughes to Dayton Livingston on 06 Dec 92  23:46:08
  8353. ** Subj: %%%%@SUBSTR tip - Filenames
  8354.  
  8355.  DL> Hiya folks...  Just working on a BTM here and found a shortcut to
  8356.  DL> displaying filenames in a formatted output.
  8357.  DL>    %@SUBSTR[%@UPPER[%@NAME[%a]]         ,0,8].%@UPPER[%@EXT[%a]]
  8358.  
  8359.  WH> This looks very interesting. It should also work with
  8360.  WH> regular environment variables when a formatted output is
  8361.  WH> wanted. I wonder of it'll work in reverse?
  8362.  
  8363.  WH> i.e. %@substr[        %var,0,-8]
  8364.  
  8365.  Yeah, works fine here.  Sorry I forgot to mention it.  I use it
  8366.  commonly for showing filesizes:
  8367.  
  8368.    ECHO %@SUBSTR[        %@FILESIZE[%a],6,-7]
  8369.  
  8370.  WH> This could be used in a calculation loop to output a
  8371.  WH> right-justified column of figures.
  8372.  
  8373.  DL> (Please!  Don't everyone write back and say, "I could have
  8374.  DL> told you that!" (Grin))
  8375.  
  8376.  WH> I could have told you that, but did you ask? Nooooo....... :-)
  8377.  
  8378.  Thanks BUNCHES!
  8379.  
  8380. - Dayton
  8381.  
  8382. ... 2+2=5, for sufficiently large values of 2.
  8383. --- Blue Wave/Max v2.11 [NR]
  8384.  * Origin: T.V. BBS - Glendale, AZ - (602) 930-8542 (1:114/148.0)
  8385.  
  8386. ------------------------------------------------------------------------
  8387.  
  8388. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8389.  
  8390.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/19/1992
  8391.   To: ERA ERIKSSON                    Num: 105        Date: 12/16/1992
  8392. From: DENNIS MCCUNNEY                  Re:            Time:  2:32 am
  8393. Subj: Couple more suggestions        Prvt: N          Read: N
  8394.  
  8395.  ** From era eriksson to Rex Conn on 10 Dec 92  19:27:36
  8396.  ** Subj: Couple more suggestions
  8397.  
  8398.  ee> 1) A variable %_DIRS which tells how many levels of pushed
  8399.  ee> directories there are
  8400.  
  8401.  ee> 2) Something similar which tells which directory is the topmost on the
  8402.  ee> DIRS stack
  8403.  
  8404.     Good thoughts.
  8405.  
  8406.     Not directly pertinant tto what you are trying to do, but you might
  8407.  find this of interest:
  8408.  
  8409.       dirs>d:\dtmp
  8410.       iff not %@filesize[d:\dtmp]=0 then
  8411.          set newd=%@select[d:\dtmp,1,40,15,78, Directories ]
  8412.          if not "%newd"=="" pushd %newd
  8413.       endiff
  8414.  
  8415.     This creates a pop-up directory history window similar to the
  8416.  command history window produced by pressing PgUp.  I have it attached
  8417.  as an alias to Ctrl-PgUp.  Things are quickest if the temp file is
  8418.  created on a ramdisk.
  8419.  
  8420.  
  8421.  
  8422. --- Blue Wave/Max v2.11 [NR]
  8423.  * Origin: * BlueDog BBS * (212) 594-4425 * NYC FileBone Hub (1:278/709.0)
  8424.  
  8425. ------------------------------------------------------------------------
  8426.  
  8427. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8428.  
  8429.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/19/1992
  8430.   To: MAYNARD HOGG                    Num: 145        Date: 12/17/1992
  8431. From: JAY CURRY                        Re:            Time: 11:53 pm
  8432. Subj: Merg.btm                       Prvt: N          Read: N
  8433.  
  8434. this is a BTM implementation of Mergesort.  notes on problems with it
  8435. follow...
  8436. ------------------------------------------------------------------
  8437. Merge.btm
  8438. ==================================================================
  8439. @echo off
  8440. if !%_4ver! == !! goto 4require
  8441. if !%1! == !! goto form
  8442. if !%2! == !! goto form
  8443. if !%3! == !! goto form
  8444. setlocal
  8445. if exist %3 del %3
  8446. set lines_1=%@lines[%1]
  8447. set lines_2=%@lines[%2]
  8448. set cur_count_1=0
  8449. set cur_count_2=0
  8450. if %lines_1 lt cur_count_1 goto empty
  8451. if %lines_2 lt cur_count_2 goto empty
  8452. set cur_line_1=%@line[%1,%cur_count_1]
  8453. set cur_line_2=%@line[%2,%cur_count_2]
  8454.  
  8455. :top
  8456.       iff %cur_line_1 lt %cur_line_2 then
  8457.     echo %cur_line_1 >> %3
  8458.     set %cur_count_1 = %@eval[%cur_count_1+1]
  8459.     if %cur_count_1 gt %lines_1 goto done1
  8460.     set %cur_line_1 = %line[%1,%cur_count_1]
  8461.       else
  8462.     echo %cur_line_2 >> %3
  8463.     set %cur_count_2 = %@eval[%cur_count_2+1]
  8464.     if %cur_count_2 gt %lines_2 goto done2
  8465.     set %cur_line_2 = %line[%2,%cur_count_2]
  8466.       endiff
  8467. goto top
  8468.  
  8469. :done1
  8470. echo %cur_line_2 >> %3
  8471. set %cur_count_2 =  %@eval[%cur_count_2+1]
  8472. if  %cur_count_2 gt %lines_2 goto done
  8473. set %cur_line_2  =  %line[%2,%cur_count_2]
  8474. goto done1
  8475.  
  8476. :done2
  8477. echo %cur_line_1 >> %3
  8478. set %cur_count_1 =  %@eval[%cur_count_1+1]
  8479. if  %cur_count_1 gt %lines_1 goto done
  8480. set %cur_line_1  =  %line[%1,%cur_count_1]
  8481. goto done2
  8482.  
  8483. :4require
  8484. echo this program requires 4dos
  8485. goto done
  8486.  
  8487. :form
  8488. text
  8489.     The format to use this program is
  8490.  
  8491.         %0 INFILE_1 INFILE_2 OUTFILE
  8492.  
  8493.         infile_1 and infile_2 should be files already sorted in
  8494.       assending order.  If outfile exists, it will be deleated.  If
  8495.       you wish to use infile_1 or infile_2 as you final outfile, use
  8496.       an alias that makes a temporary file of outfile, then copies
  8497.       that temporary file over the appropriate infile.
  8498. endtext
  8499. goto done
  8500.  
  8501. :empty
  8502. text
  8503.     one of the input files is an empty file.  The output file was
  8504.     not created.
  8505. endtext
  8506.  
  8507. :done
  8508. endlocal
  8509. quit
  8510.  
  8511. ------------------------------------------------------------------
  8512.  
  8513. Ok now for some problems...  The order of a true MergeSort is O(n), what
  8514. this means can be derived from most texts on progrmming, but ammounts to
  8515. the fact that the time this program should take is directly proportional
  8516. to the number of elements being worked upon.  If a task works on 2
  8517. elements one time then 4 elements the next, the time taken for the 4
  8518. elemnt task should be exactly twice the time taken for the 2 element
  8519. task.
  8520.  
  8521. The order of magnatude for the BTM file above is O(n^2) or n Squared.
  8522. This is because of the fact that to get a line from a text file in 4dos,
  8523. the routine ALLWAYS looks at each and every line prior to that line.
  8524. In other words the time taken for those same tasks described above, (2 &
  8525. 4 element tasks) the 4 element task will take 4 times as long as the 2
  8526. element task, and a 16 element task will take 64 times as long.  I will
  8527. leave any calculations of time taken on something like generating a 2000
  8528. line output file to the reader interested in figuring that out.  I have
  8529. other calculations to do...  Like how to feed three people for 5 days on
  8530. $2.50, in the US.  Solution, borrow heavily... |-(
  8531.  
  8532. -Jay
  8533.  
  8534. ... Go straight to the docs.  Do not pass GO.  Do not collect $200!
  8535. --- FMail 0.92
  8536.  * Origin: Le Cross Roads 608-788-8086 HST/DS LaCrosse, WI (1:2360/12.0)
  8537.  
  8538. ------------------------------------------------------------------------
  8539.  
  8540. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8541.  
  8542.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/19/1992
  8543.   To: ALL                             Num: 164        Date: 12/17/1992
  8544. From: MORRIS TURPIN                    Re:            Time:  7:32 pm
  8545. Subj: Running DOSMAX/DESQview u      Prvt: N          Read: N
  8546.  
  8547. I have just stumbled onto a trick that increased my DV window size from 601K
  8548. to 616K and, since this _is_ the Christmas season, decided to share it with
  8549. you <g>.  If you are running DOSMAX and DESQview under 4DOS, using "loadbtm
  8550. on" in your autoexec.bat file and also loading DV from your autoexec.bat file,
  8551. read on.
  8552.  
  8553. Before trying DOSMAX, my first DV window was 601K and subsequent windows were
  8554. 600K in size.  Loading DOSMAX increased the first window to 615K with
  8555. subsequent windows of 600K.  So far not too impressive.
  8556.  
  8557. I discovered, however, that if I exited to DOS and then loaded DV, ALL my DV
  8558. window sizes increased to 616K.  This was consistent and very repeatable.  It
  8559. took a day or so of head-scratching to figure out why I was losing 15K of
  8560. memory.  My autoexec.bat file looked like:
  8561.  
  8562.  loadbtm on
  8563.  unset cmdline comspec
  8564.  @c:\utility\hyperdkx.exe xs ui c:1536 s a t:0 or
  8565.  @c:\qemm\loadhi /r:2 \utility\capslock
  8566.  @c:\qemm\loadhi /r:2 \bnu.com /l:2=0 /f+ /m-
  8567.  @c:\qemm\loadhi /r:2 \vfos_ibm.com
  8568.  @c:\qemm\loadhi /r:2 \utility\ansi.com /b 0
  8569.  set /r \env
  8570.  alias /r \alias
  8571.  ...
  8572.  bunch of other stuff mainly copying files to my ramdisk
  8573.  ...
  8574.  echo `setdos /a0 /m1 /v0 /i-list^iff %_dv eq 1 then^dvclk14
  8575.    (continuation from above line) x^dvansi^cls^endiff` > d:\4start.btm
  8576.  cls
  8577.  dv
  8578.  
  8579. I decided to try adding "loadbtm off" as the line immediately preceeding "dv"
  8580. in my autoexec.bat file.  Voila!  This was sufficient to dump the file from
  8581. memory and give me 616K windows right from boot-up.
  8582.  
  8583. My autoexec.bat file now ends with:
  8584.  
  8585.  echo `setdos /a0 /m1 /v0 /i-list^iff %_dv eq 1 then^dvclk14
  8586.    (continuation from above line) x^dvansi^cls^endiff` > d:\4start.btm
  8587.  cls
  8588.  loadbtm off
  8589.  dv
  8590.  
  8591. Changing the last line to "quit^dv" should do the same thing, but I didn't
  8592. bother to test it since "loadbtm off" did the trick for me.
  8593.  
  8594. Manifest now reports:
  8595.  
  8596.                 DESQview version           2.42
  8597.  
  8598.                 DESQview window number     2
  8599.                 Window memory size         616K
  8600.                 Window max height          25
  8601.                 Window max width           80
  8602.                 Window height              25
  8603.                 Window width               80
  8604.                 Window row                 0
  8605.                 Window column              0
  8606.  
  8607. Hope this helps some of you.
  8608.  
  8609. Merry Christmas
  8610.  
  8611.  
  8612.  
  8613. --- msged 2.07
  8614.  * Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
  8615. (1:163/140.3)
  8616. (1:163/140.3)
  8617.  
  8618. ------------------------------------------------------------------------
  8619.  
  8620. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8621.  
  8622.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/19/1992
  8623.   To: MAYNARD HOGG                    Num: 171        Date: 12/08/1992
  8624. From: JASEN BETTS                      Re:            Time:  8:21 pm
  8625. Subj: Standardising Mail Packe       Prvt: N          Read: N
  8626.  
  8627.  MH>Why bother? Just get a mail reader that merges QWK packets into a
  8628.  MH>database. It never ceases to amaze me how otherwise intelligent people
  8629.  MH>can put up with OLX, which forces you to close the current QWK packet
  8630.  
  8631. Yeah, messagebase based readers are great.. They do gobble disk space
  8632. though (unless there's one that squeezes it's message base somehow , and
  8633. some of them can't purge old mail without generating a new messagebase.
  8634. I'm using one, megamail 2.10 (and would be looking for something better
  8635. (ie fewer bugs) if I didn't call a bbs that only supports megamail's
  8636. proprietry format.
  8637.  
  8638. OB-4dos: I use 4dos to enhance the integrity of this program by setting
  8639. an envoronment variable which causes mark.com to be run in 4start.btm
  8640. and release in 4exit... this allows me to load TSRs in shells without
  8641. having to remember to unload them before EXITing, also I've aliased
  8642. alt-X to ^xEEXIT^xR which gives me a way to hot-key out of dos shells in
  8643. a fashion similar to most of the other software I run.
  8644.  
  8645. For a short period a strange software fault caused one BBS to loose it's
  8646. ability to  handle ZIP format QWK packets and I thus built into my
  8647. reader .BTM file routines to convert to/from ARJ format.
  8648.  
  8649. Bye.
  8650.                         
  8651.  
  8652. --- Maximus 2.01wb
  8653.  * Origin: Mirth Control Chch, NZ 64-3-3890898 v32b/v42b/FAX (3:770/140)
  8654.  
  8655. ------------------------------------------------------------------------
  8656.  
  8657. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8658.  
  8659.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/23/1992
  8660.   To: REX CONN                        Num: 89         Date: 12/18/1992
  8661. From: HUGO LANDSMAN                    Re:            Time: 12:55 pm
  8662. Subj: ansi detection does not w      Prvt: N          Read: N
  8663.  
  8664. Hi Rex,
  8665.  
  8666. 06 Dec 1992 21:58, Rex Conn (1:109/423) wrote to Bonno Bloksma:
  8667.  
  8668.  >> 4DOS refuses to recognize the ansi driver.
  8669.  
  8670.  RC> 4DOS uses the *documented* way ot detecting an ANSI driver: an INT 
  8671.  RC> 2Fh call with AX=1A00h.  Unfortunately, a lot of the third-party ANSI 
  8672.  RC> drivers don't properly implement this call, so 4DOS then tries 
  8673.  
  8674. Of course.  That method to detect ANSI didn't exist until DOS 4.0, so 4DOS will
  8675. fail to detect all older ANSI drivers (and some newer too, especialy the
  8676. smaller/faster ones).  The following alias should detect any & all:
  8677.  
  8678.     HAVEANSI = set y=%_row
  8679.         if %y=0 echos %@char[10]
  8680.         echos %@char[27][H
  8681.         iff %_row=0 then
  8682.             echo %@char[27][%y;0HANSI driver detected
  8683.             set ANSI=1
  8684.         else
  8685.             echo %@char[13]No ANSI available
  8686.             set ANSI=0
  8687.         endiff
  8688.         unset y
  8689.  
  8690. You might want to set the foreground color equal to the background before
  8691. emitting the ESC[H.
  8692.  
  8693. regards,
  8694.          hugo
  8695.  
  8696. --- FastEcho 1.21a/beta
  8697.  * Origin: st. anna pbbs - nimwegen nl (2:512/154.5@fidonet.org)
  8698.  
  8699. ------------------------------------------------------------------------
  8700.  
  8701. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8702.  
  8703.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/23/1992
  8704.   To: ALL                             Num: 95         Date: 12/20/1992
  8705. From: SCOTT WUNSCH                     Re:            Time: 11:52 am
  8706. Subj: Files in Directory             Prvt: N          Read: N
  8707.  
  8708. Seasons Greetings, All!
  8709.  
  8710.   I finally figured out a good way to determine the number of files in a
  8711. directory!  It seems to me that this had been a big discussion a little while
  8712. ago, so I hope this hasn't been done before.  Anyhow,
  8713.  
  8714. DIRCNT=*DIR/B|ECHO %@LINES[CON]
  8715.  
  8716.   That will count both files and subdirectories.  Add a /A:-D switch to the DIR
  8717. command for files only.
  8718.                                                /\   LLAP...
  8719.                                              > \ cott \\'unsch <
  8720.                                               \/
  8721.  
  8722. ... Taco Bell is _not_ a Mexican phone company!
  8723.  
  8724. --- GoldED 2.40
  8725.  * Origin: Season's Greetings from Regina, Sask, Canada! (1:140/23.1701)
  8726.  
  8727. ------------------------------------------------------------------------
  8728.  
  8729. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8730.  
  8731.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/23/1992
  8732.   To: DOMINIC STRANGE                 Num: 88         Date: 12/20/1992
  8733. From: MORRIS TURPIN                    Re:            Time:  7:06 pm
  8734. Subj: History and Cmdline            Prvt: N          Read: N
  8735.  
  8736.  In a message dated Dec 19 at 00:04, Dominic Strange of 2:252/21.22
  8737.  wrote to All:
  8738.  
  8739.  DS> Hi All
  8740.  
  8741. Hi, Dominic
  8742.  
  8743.  DS> I've been playing around trying to get and up to the moment History 
  8744.  DS> copied from one DV window to another.
  8745.  
  8746.  DS> Unfortunatly this is only updated as I exit one window.  What I 
  8747.  DS> would really like is to put something like this in my prompt
  8748.  
  8749.  DS> %@exec[echo %cmdline>>c:\4dos\hist.lst]
  8750.  
  8751.  DS> so that my hist.lst file is updated after each commnad is 
  8752.  DS> completed.
  8753.  
  8754.  DS> This however will only work for external commands whereas I would 
  8755.  DS> like to be able to put both internals and aliases in history.
  8756.  
  8757.  DS> Anyone got any bright ideas???
  8758.  
  8759. Yes.  I used to do this, but haven't bothered since I started using DV.  You
  8760. need three things.  First, your prompt must be:
  8761.  
  8762. prompt %@exec[readhist]$h...rest of your prompt here...
  8763.  
  8764. Second, READHIST is an alias (all on one line, of course):
  8765.  
  8766. READHIST=iff exist c:\hist.lst then^history /f^history /r c:\hist.lst^del
  8767. c:\hist.lst >& nul
  8768.  
  8769. and third, your 4EXIT.BTM (or .bat) file:
  8770.  
  8771. 4exit.btm
  8772. ---------
  8773. history >> c:\4dos\hist.lst
  8774.  
  8775. That's all there is to it.  Good luck.
  8776.  
  8777.  
  8778. --- msged 2.07
  8779.  * Origin: Ansi's Escape, Echo Point -- Ottawa, Ontario (1:163/140.3)
  8780.  
  8781. ------------------------------------------------------------------------
  8782.  
  8783. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8784.  
  8785.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/23/1992
  8786.   To: ALL                             Num: 92         Date: 12/20/1992
  8787. From: JAN NOLAN                        Re:            Time:  4:42 pm
  8788. Subj: Lil' Calendar That Could       Prvt: N          Read: N
  8789.  
  8790. I found it unusual and a bit confusing that all the calendars I saw
  8791. presented here used for the left most day, the day that happens to be
  8792. the 1st day of the month. I prefer the usual "Su Mo Tu We Th Fr Sa"
  8793. order.
  8794.  
  8795. This btm also gives the time OR lets you pick any month/year to view
  8796.  :-) run it with the "/?" option for help
  8797.  
  8798. *** CHANGE the "set d=...." line to be <one long line> !!
  8799.     It is shown here as split into two lines.
  8800.  
  8801. *** The 6 spacing lines that seem to contain only "echo" actually end
  8802.     with an invisible phantom space. (ie. "echo", then a normal space,
  8803.     then a phantom space)  A phantom space is made by holding down the
  8804.     Alt key and tapping 255 on the numeric keypad.
  8805.  
  8806.  
  8807. ---------------CAL.BTM follows this line------------------
  8808. #echo off
  8809. if %#substr[%1,0,2]#=/?@   goto help_txt
  8810. setlocal
  8811. set d=                         1   2   3   4   5   6   7   8   9  10  11  12
  8812.   13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28
  8813. echo  
  8814. echo  
  8815. set bak=%_date
  8816. keystack 13
  8817. iff %1* = * then
  8818.    iff %@substr[%_time,0,2] GT 12 then
  8819.           set tim=%#EVAL[%#substr[%_time,0,2] -12]%@substr[%_time,2,3]pm
  8820.           else
  8821.           set tim=%@substr[%_time,0,5]am
  8822.           endiff
  8823.    date | echo      %#substr["%@Line[con,0]",1,17]
  8824.    echo  
  8825.    echo            %tim
  8826.    date %#substr[%_date,0,2]/01/%@substr[%_date,6,2]
  8827. elseiff %2* = * then
  8828.    date %1/01/%@substr[%_date,6,2]
  8829.    date | echo         %#substr["%#Line[con,0]",5,4] 19%@substr[%bak,6,2]
  8830. else
  8831.    date %1/01/%2
  8832.    date | echo         %#substr["%#Line[con,0]",5,4] 19%@substr[%_date,6,2]
  8833. endiff
  8834. set day=%_dow
  8835. iff %day = Sat then
  8836.    set g=0
  8837. elseiff %day = Fri then
  8838.    set g=1
  8839. elseiff %day = Thu then
  8840.    set g=2
  8841. elseiff %day = Wed then
  8842.    set g=3
  8843. elseiff %day = Tue then
  8844.    set g=4
  8845. elseiff %day = Mon then
  8846.    set g=5
  8847. else
  8848.    set g=6
  8849. endiff
  8850. echo  
  8851. echo  
  8852. set m=%@substr[%_date,0,2]
  8853. if %m = 02 (gosub FEB^GOTO ONWARD)
  8854. if %m=4 .OR. %m=6 .OR. %m=9 .OR. %m=11  (set d=%d  29  30^GOTO ONWARD)
  8855. set d=%d  29  30  31
  8856. :ONWARD
  8857. echo  Su  Mo  Tu  We  Th  Fr  Sa
  8858. set c=%@eval[(%g*4)]
  8859. echo  %#substr[%d,%c,28]
  8860. set c=%#eval[(%c+28)]
  8861. :
  8862. echo  %#substr[%d,%c,27]
  8863. set c=%#eval[(%c+28)]
  8864. :
  8865. echo  %#substr[%d,%c,27]
  8866. set c=%#eval[(%c+28)]
  8867. :
  8868. echo  %#substr[%d,%c,27]
  8869. set c=%#eval[(%c+28)]
  8870. :
  8871. echo  %#substr[%d,%c,27]
  8872. set c=%#eval[(%c+28)]
  8873. IF %c LT %#LEN[%d] echo  %@substr[%d,%c,27]
  8874. date %bak
  8875. echo  
  8876. endlocal
  8877. quit
  8878. :help_txt
  8879. text
  8880.  
  8881. Format:     CAL [mm [yy]]
  8882.  
  8883. default's to calendar of current month
  8884. [mm] cal of month in current year  Ex: "cal 12"
  8885. [mm yy] cal of month and year      Ex: "cal 12 91"
  8886. endtext
  8887. quit
  8888. :FEB
  8889. set year=%#eval[1900+%#substr[%_date,6,2]]
  8890. if %#eval[%year %%4] = 0 if %@eval[%year %%100] NE 0 (set d=%d  29^RETURN)
  8891. if %@eval[%year %%400] = 0 set d=%d  29
  8892. RETURN
  8893. --- FidoPCB v1.3 [ff025/x]
  8894.  * Origin: XON/XOFF Information Service - Montreal - USENET! (1:167/159)
  8895.  
  8896. ------------------------------------------------------------------------
  8897.  
  8898. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8899.  
  8900.  BBS: ESCMAIL         Conference: 4dos            Imported: 12/28/1992
  8901.   To: ALL                             Num: 27         Date: 12/21/1992
  8902. From: JOHN THOMPSON                    Re:            Time:  9:23 pm
  8903. Subj: @select Questions              Prvt: N          Read: N
  8904.  
  8905. Inspired by the "SELECT-like" convenience of the shareware utilities
  8906. 4ZIP/4UNZIP, I set out to hone my novice batch file programing skills by
  8907. writing a batch file to allow this with other archive types. 
  8908.  
  8909. By using the 4DOS executable extensions to point to the batch file ("set
  8910. .lzh=c:\bat\4arcs", etc.) and reading a temporary file containing the
  8911. archive directory into the "@select" variable function I was able to make a
  8912. functional utility for this purpose, although it lacks some of the polish
  8913. and features of 4ZIP/4UNZIP.  Specifically, it does not support file
  8914. descriptions in the archive, but I guess I can live without that.
  8915.  
  8916. I do have a couple other questions/concerns:
  8917.  
  8918. 1.   @select does not appear to support passing multiple arguments to the
  8919.      command; therefore I find it necessary to do one file at a time with
  8920.      this.  I would be happy to be shown that there is a better way :-).
  8921.  
  8922. 2.   @select does not appear to trap for "control-c;" therefore one must be
  8923.      imaginative when you decide not to extract any files.  I have found
  8924.      that placing the cursor bar on a spurious line will often serve the
  8925.      purpose.  One again, hints to a better way would be appreciated. 
  8926.  
  8927. 3.   There are an awful lot of "gosubs" and redundancy in the code; I'm no
  8928.      expert at this, and that is just the way I finally got it to work! 
  8929.  
  8930. Maybe some of you code-experts can give it a "going-over" I can learn from;
  8931. the rest of you may find it interesting at least.
  8932.  
  8933. What follows is the batch file (indented lines continue from previous line):
  8934. @echo off
  8935. break on
  8936. if "%@ext[%1]" == "lzh" gosub lha
  8937. if "%@ext[%1]" == "arj" gosub arj
  8938. if "%@ext[%1]" == "sqz" gosub sqz
  8939. if "%@ext[%1]" == "arc" gosub arc
  8940. if "%@ext[%1]" == "pak" gosub pak
  8941. :lha
  8942. d:\arcs\lha l %1>d:\temp\temp.lst
  8943. d:\arcs\lha e %1 %@word[0,%@select[d:\temp\temp.lst,0,0,24,79,Press ESC...
  8944.      ...to unpack all files]]
  8945. goto end
  8946. :arj
  8947. d:\arcs\arj l %1>d:\temp\temp.lst
  8948. d:\arcs\arj e %1 %@word[0,%@select[d:\temp\temp.lst,0,0,24,79,Press ESC...
  8949.      ...to unpack all files]]
  8950. goto end
  8951. :sqz
  8952. d:\arcs\sqz l %1>d:\temp\temp.lst
  8953. d:\arcs\sqz e %1 %@word[0,%@select[d:\temp\temp.lst,0,0,24,79,Press ESC...
  8954.      ...to unpack all files]]
  8955. goto end
  8956. :arc
  8957. d:\arcs\pkxarc -v %1>d:\temp\temp.lst
  8958. d:\arcs\pkxarc -x %1 %@word[0,%@select[d:\temp\temp.lst,0,0,24,79,Press...
  8959.      ...ESC to unpack all files]]
  8960. goto end
  8961. :pak
  8962. d:\arcs\pak l %1>d:\temp\temp.lst
  8963. d:\arcs\pak e %1 %@word[0,%@select[d:\temp\temp.lst,0,0,24,79,Press ESC...
  8964.      ...to unpack all files]]
  8965. goto end
  8966. :end
  8967. inkey Another file? Y/N: %%4yn
  8968. if "%4yn"=="Y".or."y" return
  8969. del d:\temp\temp.lst /q^unset 4yn
  8970.  
  8971.  * KingQWK 1.05 # 39 * Tighten 'til it cracks, then back off 1/2 turn.
  8972. --- SuperQWK 1.17 Beta-2 (Reg)
  8973.  * Origin: APPLEGATE; "You got the right one baby, UH HUH!" (1:139/631)
  8974.  
  8975. ------------------------------------------------------------------------
  8976.  
  8977. Echo Flag :         Permanent: N       Export: N      Personal Read: N
  8978.  
  8979.  BBS: ESCMAIL         Conference: 4dos            Imported:  1/02/1993
  8980.   To: JOHN THOMPSON                   Num: 69         Date: 12/26/1992
  8981. From: TONY DUNLAP                      Re:            Time: 10:39 pm
  8982. Subj: @select Questions              Prvt: N          Read: N
  8983.  
  8984.  > 1.   @select does not appear to support passing multiple arguments to the
  8985.  >      command; therefore I find it necessary to do one file at a time with
  8986.  >      this.  I would be happy to be shown that there is a better way :-).
  8987. Me too! I'd also like a timeout on @select.
  8988.  
  8989.  > 2.   @select does not appear to trap for "control-c;" therefore one must be
  8990.  >      imaginative when you decide not to extract any files.  I have found
  8991.  >      that placing the cursor bar on a spurious line will often serve the
  8992.  >      purpose.  One again, hints to a better way would be appreciated.
  8993.  
  8994.  
  8995.  > if "%@ext[%1]" == "lzh" gosub lha
  8996.  > if "%@ext[%1]" == "arj" gosub arj
  8997.  > if "%@ext[%1]" == "sqz" gosub sqz
  8998.  > if "%@ext[%1]" == "arc" gosub arc
  8999.  > if "%@ext[%1]" == "pak" gosub pak
  9000. Instead of having a separate gosub for each extension, try this:
  9001.  
  9002. if "%@ext[%1]" == "lzh" set oper=lha e
  9003. if "%@ext[%1]" == "arj" set oper=arj e
  9004. if "%@ext[%1]" == "sqz" set oper=sqz e
  9005. if "%@ext[%1]" == "arc" set oper=pkxarc -x
  9006. if "%@ext[%1]" == "pak" set oper=pak e
  9007.  
  9008. Then you'll only need one unarc line:
  9009.  
  9010. %oper% %1
  9011.  
  9012. which, if the extension were pak, would expand to:
  9013.  
  9014. pak e %1
  9015.  
  9016.  
  9017.  > d:\arcs\lha e %1 %@word[0,%@select[d:\temp\temp.lst,0,
  9018.  > 0,24,79,Press ESC...
  9019.  >      ...to unpack all files]]
  9020.  
  9021. If you have disk space to spare, you might consider unarcing the whole archive
  9022. to a temporary directory then "select move (*.*) /r" the files you want to the
  9023. directory you want then deleting the rest.
  9024.  
  9025.  
  9026. Later
  9027.  
  9028. --- GEcho 1.00
  9029.  * Origin: DISCOVER (1:2220/30.1)
  9030.